关于与this question:我尝试使用下面的查询我的SQL Server查询,如果表不存在识别
IF NOT EXISTS(
SELECT T.name FROM SYS.TABLES T JOIN SYS.SCHEMAS S ON (T.SCHEMA_ID = S.SCHEMA_ID)
WHERE S.NAME = 'DBO' AND T.NAME = 'sample2Prot'
)
BEGIN CREATE TABLE[TCPDUMP].[dbo].[sample2Prot]
(
[IdTransmission] INT IDENTITY(1, 1) NOT NULL,
[timestp] NVARCHAR(32) NULL,
[idq] NVARCHAR(32) NULL,
[idz] NVARCHAR(32) NULL,
[prot] NVARCHAR(32) NULL,
[Lhowmany] NVARCHAR(32) NULL,
[Rhowmany] NVARCHAR(32) NULL,
CONSTRAINT[PK_TCPDump] PRIMARY KEY CLUSTERED([IdTransmission] ASC)
)
END;
的CREATE my_table.."
部分作品,但如果该表已经存在,程序在执行期间引发错误:看起来“if not exists”语句不起作用。任何人都有解释?
随意问更多细节
'和t.name = my_table'似乎缺少引号。除此之外,我无法复制您的问题:此声明不会尝试创建已存在的表。 'IF(OBJECT_ID('dbo.mytable','U')IS NULL)'是一个较短的选择。你是否试图在错误的数据库中执行这条语句,或者在没有权限对该表执行任何操作的帐户下执行该语句? –
您还需要创建一个表格作为CREATE TABLE my_table ... – Leonidas199x
@ Leonidas199x我没有复制这篇文章,因为这部分似乎工作,但查询的其余部分存在x) –