我有这样的代码,我从MySQL转换:的SQL Server:检查表存在,否则创建
IF NOT EXISTS (SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'TheSchema'
AND TABLE_NAME = 'odds_soccer')
CREATE TABLE "odds_soccer" (...)
唯一的问题是...如果我尝试运行它两次,它会难倒第二次与错误
消息2714,级别16,状态6,行1
已经有一个在数据库中名为 'odds_soccer' 的对象。
因为我实际上在SO上找到了我的解决方案,所以我不确定为什么代码不工作。
我目前正在从Microsoft SQL Server Management Studio中选择我的数据库作为查询来运行它。
如果我放弃模式部件 - 并使用此 - 它似乎工作: IF(NOT(EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME =“odds_soccer '))) 因为这实际上是由软件生成的代码,对底层数据库没有特别的了解(odds_soccer只是一个例子,可以是任何数据,列等)----这不是最兼容的代码生成/使用? – Tom