sql-server - 如何使用 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)
- 如何使用 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)
- SQL Server 不支持在单个 ALTER TABLE 语句中指定要修改的多个列,而 Oracle 支持。如何使用 ODBC API 确定是否有这样的支持?
- SQL Server 使用
ALTER COLUMN
,Oracle 使用MODIFY
. 如何使用 ODBC API 确定底层 DBMS 需要哪些关键字才能修改列?
我的应用程序使用 ODBC API 与任何 ODBC 兼容的数据库进行交互。因此,我需要一种通用的方法来查找支持的内容。
感谢帮助!
解决方案
ODBC API 不评估 SQL 语法。它只是通往 Oracle 客户端的桥梁,它提供与实际数据库的通信,该数据库可以是多个版本中的任何一个。只有数据库评估 SQL 语法。据我所知,没有编程方式可以通过 API 提取它;您将必须阅读特定于版本的文档并相应地对您的应用程序进行编码。
推荐阅读
- javascript - 在移动设备或 1200px 以下隐藏 Javascript 功能
- javascript - 显示来自 Firestore 的数据时遇到问题
- java - 如何在java中打印值而不是内存位置?
- python - 如何确定两个字符串的相似程度(直到某一点)
- node.js - 将带有 Unix 时间戳的字段转换为日期 (Mongodb/NodeJS)
- sequelize.js - 有没有办法使用 Op.like 作为 Sequelize 中的第二个元素?
- acumatica - ARBalance 更新后的 Acumatica 发布操作
- javascript - 仅从电子邮件地址数组中获取电子邮件地址域名
- prometheus - avg_over_time(rate()) 相对于 rate() 本身的优势?
- svn - 使用 SVN 创建新分支并移动未提交的工作副本更改