我想導入數據到數據庫。 爲了做到這一點,我需要設置indentity insert on
。 使用edit mapping
來設置500+表不是一個選項。設置啓用插入多個表,其中一些已經有ID ON
所以我發現了這個SO Question
但一些表已經將其設置爲ON所以Puting這在一個查詢將產生1個錯誤語句錯誤和停止。 如何強制它忽略錯誤結束轉到下一個語句,直到它將嘗試將所有表設置爲ON?
我想導入數據到數據庫。 爲了做到這一點,我需要設置indentity insert on
。 使用edit mapping
來設置500+表不是一個選項。設置啓用插入多個表,其中一些已經有ID ON
所以我發現了這個SO Question
但一些表已經將其設置爲ON所以Puting這在一個查詢將產生1個錯誤語句錯誤和停止。 如何強制它忽略錯誤結束轉到下一個語句,直到它將嘗試將所有表設置爲ON?
你是如何導入你的數據?你可能想看看Keep Identity Values When Bulk Importing Data。
您一次只能將IDENTITY_INSERT打開爲一個表格(每個會話)。如果需要,您可以使用此查詢來生成一個腳本,以關閉每個適用表的IDENTITY_INSERT。
select
N'SET IDENTITY_INSERT ' + quotename(s.name) + N'.' + quotename(o.name) + N' OFF'
from
sys.objects o
inner join sys.schemas s on s.schema_id = o.schema_id
inner join sys.columns c on c.object_id = o.object_id
where
o.type = 'U' and
c.is_identity = 1
- 爲SQL Server 2005和 開始嘗試
set identity_insert (table 1 name) on
end try
begin catch
print ' table 1 already on'
end catch
begin try
set identity_insert (table 2 name) on
end try
begin catch
print ' table 2 already on'
end catch