我有需要使用更新表每天一次作業: -MSSQL 2008 SET IDENTITY INSERT活數據庫
SET IDENTITY INSERT ON
。然而,在同一時間,其他用戶正在使用這個實時數據庫並插入記錄,這必須使用SET IDENTITY INSERT OFF
完成。
有什麼方法可以讓作業在運行的同時仍然允許用戶插入記錄?
我有需要使用更新表每天一次作業: -MSSQL 2008 SET IDENTITY INSERT活數據庫
SET IDENTITY INSERT ON
。然而,在同一時間,其他用戶正在使用這個實時數據庫並插入記錄,這必須使用SET IDENTITY INSERT OFF
完成。
有什麼方法可以讓作業在運行的同時仍然允許用戶插入記錄?
這沒有問題。
設置標識插入的範圍session
,
所以如果你使用了下面的代碼:
SET IDENTITY_INSERT TableName ON
Insert statement ...
其他用戶意味着其他場次,所以如果他們試圖插入的身份,他們將獲得下一錯誤: -
Cannot insert explicit value for identity column in table 'TableName' when IDENTITY_INSERT is set to OFF.
從MSDN: -
At any time, only one table in a session can have the IDENTITY_INSERT property set to ON. If a table already has this property set to ON, and a SET IDENTITY_INSERT ON statement is issued for another table, SQL Server returns an error message that states SET IDENTITY_INSERT is already ON and reports the table it is set ON for.
因此,有些用戶可以使用Identity_Insert ON訪問表,同時其他人可以使用identity_insert_off訪問同一個表? – user1480192
是的,正如MSDN告訴我們的,它的範圍是會話。 –
請在你的情況下使用序列。 –
難道不是這樣嗎?當用戶要求關閉時,jub是否需要「設置標識插入」? –
你是對的。該工作要求身份插入ON,而正在進行的事務需要身份插入OFF。 – user1480192
「工作需要身份插入ON,而正在進行的事務需要身份插入關閉」 - 這有點奇怪 –