【发布时间】:2020-05-29 23:45:07
【问题描述】:
所以我有一个查询应该将主键添加到 Id 字段:
IF NOT EXISTS(SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'PRIMARY KEY' AND TABLE_NAME = 'CAL')
BEGIN
DROP INDEX IF EXISTS CAL$01 ON dbo.CAL;
ALTER TABLE BTS.dbo.CAL
ALTER COLUMN Intern INT NOT NULL;
ALTER TABLE BTS.dbo.CAL
ADD CONSTRAINT PK_CAL_Intern PRIMARY KEY (Intern);
CREATE INDEX CAL$01
ON CAL (Intern);
END
问题是当我选择所有这些代码并执行(F5)时,我得到了这个错误:
而当我一一选择每个语句时,它会按预期工作:
我确信IF 可以正常工作
我尝试在语句之间使用GO,这是不允许的。
我应该在大量表上执行这段代码
也许我对 SQL Server Management Studio 如何执行语句一无所知
【问题讨论】:
-
执行语句的不是 MAnagement Studio,而是 DB 引擎。
-
DROP INDEX IF EXISTS 与 sqlserver 2016 一起出现 - 你使用的是什么版本?
-
我得到了最后一个版本的 Management Studio,不久前我安装了它
-
SSMS 和 SQL Server 不是一回事,@ValeriuSeremet。 SSMS 的版本和 SQL Server 的版本通常是不相关的。例如,SSMS 2018 支持 SQL Server 2008-2019(即 7 个不同版本的 SQL Server)。
-
SQL Server 版本:15.0.2
标签: sql sql-server tsql