Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как определить для какой таблицы включен SET IDENTITY_INSERT ON?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Как определить включен ли режим ON для какой-нибудь таблицы и выключить его в общем случае?
То есть скажем в начале такого скритпа:

SET IDENTITY_INSERT [dbo].[sources1] ON;
INSERT INTO [dbo].[sources1]...
SET IDENTITY_INSERT [dbo].[sources1] OFF;

[SRC sql]SET IDENTITY_INSERT [dbo].[sources2] ON;
INSERT INTO [dbo].[sources2]...
SET IDENTITY_INSERT [dbo].[sources2] OFF;

SET IDENTITY_INSERT [dbo].[sources3] ON;
INSERT INTO [dbo].[sources3]...
SET IDENTITY_INSERT [dbo].[sources3] OFF;


Если на таблице sources2 происходит ошибка, то обработать sources3 не получится, и повторный запуск скрипта тоже дает ошибку из-за ON на sources2.
23 сен 14, 14:49    [16610651]     Ответить | Цитировать Сообщить модератору
 Re: Как определить для какой таблицы включен SET IDENTITY_INSERT ON?  [new]
iap
Member

Откуда: Москва
Сообщений: 47052
USE tempdb;
 
CREATE TABLE T1(ID INT NOT NULL IDENTITY);
CREATE TABLE T2(ID INT NOT NULL IDENTITY);

EXEC(N'SET IDENTITY_INSERT T1 ON;INSERT T1(ID)VALUES(666);');
EXEC(N'SET IDENTITY_INSERT T2 ON;INSERT T2(ID)VALUES(666);');
23 сен 14, 15:02    [16610753]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить