Можно ли сделать вставку по Id необязательной? - PullRequest
0 голосов
/ 09 января 2019

Я хочу иметь возможность вставить что-то в мою таблицу с определенным идентификатором, поэтому я включил IDENTITY_INSERT для таблицы. Однако, если я просто хочу, чтобы автоинкремент обрабатывал идентификатор, появляется эта ошибка:

"Для столбца идентификаторов в таблице должно быть указано явное значение 'TsiList' либо когда IDENTITY_INSERT установлен на ON, либо когда пользователь репликации вставляет в удостоверение NOT FOR REPLICATION колонка. "

Есть ли способ сделать запросы

INSERT INTO table (ID, something_else) VALUES (15, 'foo'); 

и

INSERT INTO table (something_else) VALUES ('foo'); 

работать одновременно?

1 Ответ

0 голосов
/ 09 января 2019

Вы не можете сделать это без включения или выключения identity_insert, как требуется между выполнением каждого запроса.

Каждая версия будет работать, только если для identity_insert установлено соответствующее значение в рамках сеанса, в котором выполняется запрос.

Например:

SET IDENTITY_INSERT TsiList ON;
INSERT INTO TsiList (ID, something_else) VALUES (15, 'foo'); 
SET IDENTITY_INSERT TsiList OFF;
INSERT INTO TsiList (something_else) VALUES ('foo');
...