首页 > 解决方案 > 如何使用 ODBC API 确定 ALTER TABLE 查询支持什么

问题描述

这些是向不同 DBMS 中的现有表添加新列的查询:

SQL Server:
ALTER TABLE [Table1] ADD [NewColumn1] float NULL, [NewColumn2] float NULL

Oracle (notice the parentheses):
ALTER TABLE "Table1" ADD ("NewColumn1" BINARY_DOUBLE NULL, "NewColumn2" BINARY_DOUBLE NULL)
  1. 如何使用 ODBC API 确定要添加的列是否需要括在一组括号中?

这些是修改不同 DBMS 中现有列的查询:

SQL Server:
ALTER TABLE [Table1] ALTER COLUMN [C] float NOT NULL

Oracle:
ALTER TABLE "Table1" MODIFY ("NewColumn1" BINARY_DOUBLE NOT NULL, "NewColumn2" BINARY_DOUBLE NOT NULL)
  1. SQL Server 不支持在单个 ALTER TABLE 语句中指定要修改的多个列,而 Oracle 支持。如何使用 ODBC API 确定是否有这样的支持?
  2. SQL Server 使用ALTER COLUMN,Oracle 使用MODIFY. 如何使用 ODBC API 确定底层 DBMS 需要哪些关键字才能修改列?

我的应用程序使用 ODBC API 与任何 ODBC 兼容的数据库进行交互。因此,我需要一种通用的方法来查找支持的内容。

感谢帮助!

标签: sql-serverdatabaseoracleodbc

解决方案


ODBC API 不评估 SQL 语法。它只是通往 Oracle 客户端的桥梁,它提供与实际数据库的通信,该数据库可以是多个版本中的任何一个。只有数据库评估 SQL 语法。据我所知,没有编程方式可以通过 API 提取它;您将必须阅读特定于版本的文档并相应地对您的应用程序进行编码。


推荐阅读