Итак, у меня есть запрос, который должен добавить первичный ключ в поле 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 выполняет операторы