我有这个代码我从MySQL转换:
IF NOT EXISTS (SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'TheSchema'
AND TABLE_NAME = 'odds_soccer')
CREATE TABLE "odds_soccer" (...)
Run Code Online (Sandbox Code Playgroud)
唯一的问题是...如果我尝试运行两次,它将第二次出错而错误
消息2714,级别16,状态6,行1
数据库中已存在名为"odds_soccer"的对象.
因为我实际上在SO处找到了我的解决方案,所以我不确定为什么代码不起作用.
我目前正在运行它作为Microsoft SQL Server Management Studio中选择了我的数据库的查询.
用于创建表格
IF NOT EXISTS (SELECT 'X'
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'table_name'
AND TABLE_SCHEMA = 'schema')
BEGIN
create..
END
Run Code Online (Sandbox Code Playgroud)
对于删除现有表创建新表
IF Object_id('TEMPDB.schema_name.table', 'U') IS NOT NULL
DROP TABLE table;
Run Code Online (Sandbox Code Playgroud)
您的SELECT查询在'TheSchema'模式中查找表,而表通常是在默认模式中创建的dbo,因为CREATE语句中未指定模式名称.
请尝试使用此脚本:
IF NOT EXISTS (SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'TheSchema'
AND TABLE_NAME = 'odds_soccer')
CREATE TABLE [TheSchema].odds_soccer (...)
Run Code Online (Sandbox Code Playgroud)