2013-04-08 27 views
-1

我需要創建一個具有Users表的外鍵的新表。生產服務器上的SQL ALTER TABLE SET(LOCK_ESCALATION = TABLE)

用戶表有2百萬條記錄。

當我在我們的測試服務器上運行腳本時,它鎖定了此表,並且測試用戶在事務處理期間無法查詢此表。

查詢開始像;

BEGIN TRANSACTION 
GO 
ALTER TABLE dbo.Users SET (LOCK_ESCALATION = TABLE) 
GO 
COMMIT 
/*CREATE NEW TABLE AND FOREIGN KEYS HERE*/ 

是什麼安全的方式不鎖定它在生產環境中運行?

我們是否應該在「維護模式」中設置生產服務器,並在sql事務完成時重新生效?

+1

該代碼沒有意義。 – 2013-04-09 00:01:56

+0

代碼有什麼問題?我在下一個陳述中添加了評論。 – 2013-04-09 00:03:33

+1

「我需要創建一個帶有」用戶「表的外鍵的新表 - 只需創建它! – 2013-04-09 00:04:24

回答

0

爲了創建一個新表和它的外鍵,甚至是新的表索引,你不需要鎖定或設置被引用表的lock_escalation(在你的情況下,dbo.Users)。不要運行上述事務,只需要創建新表和外鍵。