2
爲sp_getapplock MSDN文檔說:當使用sp_getapplock時,@Resource應該指什麼?
[@資源=] 'RESOURCE_NAME' 是指定一個名稱 標識鎖資源的字符串。
由sp_getapplock創建的鎖資源在當前數據庫中爲 會話創建。每個鎖資源由以下組合值標識:
- 包含鎖資源的數據庫的數據庫ID。
- @DbPrincipal參數中指定的數據庫原理。
- @Resource參數中指定的鎖定名稱。
我的問題:
1.是 'RESOURCE_NAME' 只是你彌補任何舊的名字嗎?
2.「resource_name」是否必須引用表名或存儲的proc名稱或(指定的)事務名稱?
後續行動的一點:(1)是否有堅持的最佳做法? (2)是否存在需要或想要在t-sql代碼中引用「小貓」的情況,還是在調用sp_getapplock時唯一重要的時刻? – mg1075
我不知道任何有關sp_getapplock的最佳做法。我知道我從未在生產代碼中看到過它。儘管如此,我可以想象任何你能找到的有關信號量的東西都適用於此。至於你使用的鎖的名字,我認爲它不在sp_getapplock(和關聯的sp_releaseapplock,當然)之外。 –
「......從未在生產代碼中看到它」。很高興知道。我想知道是因爲Remus的迴應在這裏:http://stackoverflow.com/questions/6880588/managing-synonyms-in-a-proc-with-nested-procs-using-sp-getapplock當我嘗試實現它,它給我造成了鎖,似乎打敗了我希望能夠完成的全部目的。 http://stackoverflow.com/questions/6853327/keep-table-downtime-to-a-minimum-by-renaming-old-table-then-filling-a-new-versio – mg1075