Можно ли сделать вставку по Id необязательной?
Я хочу иметь возможность вставлять что-то в мою таблицу с определенным идентификатором, поэтому я включил 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 ответ
Вы не можете сделать это без переключения 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');