Выполнение скрипта для добавления первичных ключей во все таблицы возвращает ошибку - PullRequest
0 голосов
/ 23 апреля 2019

Я хочу добавить первичный ключ IDD к каждой таблице 'Temp...' в схеме.Я пытаюсь сделать это следующим образом:

DECLARE @addId VARCHAR(MAX) = '';
SELECT @addId = @addId + 'ALTER TABLE ['+ TABLE_NAME +'] ADD IDD int IDENTITY(1,1);ALTER TABLE ['+TABLE_NAME +'] ADD PRIMARY KEY (IDD);' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'Temp%'
EXEC (@addId );

Я вернулся с такой ошибкой:

Multiple identity columns specified for table 'TempTable'. Only one identity column per table is allowed.

В чем моя ошибка?

РЕДАКТИРОВАТЬ: Первичный ключ уже не определен в таблицах.

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Используйте этот запрос, чтобы получить всю таблицу, которая не имеет первичного ключа:

select * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME NOT IN(SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
WHERE  CONSTRAINT_TYPE='PRIMARY KEY')

И соответственно измените свой динамический запрос.

0 голосов
/ 23 апреля 2019

попробуйте

SELECT @addId = @addId + 
ALTER TABLE ['+ TABLE_NAME +'] ADD IDD int PRIMARY KEY IDENTITY(1,1);
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'Temp%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...