SP の 1 つに次のロジックがあります。
if object_id('tempdb..##val','u') is null begin
create table ##val (
name varchar(512)
,val nvarchar(max)
)
end
insert ##val (name,val)values('some unique name','abcdef')
この質問には、確認を示す回答がありますif object_id(
が、次の懸念があります。
1) このチェックは競合状態の観点からスレッドセーフですか? sp_GetAppLock
具体的には、 /を使用する必要がありますsp_ReleaseAppLock
か?
2) if 条件はテーブルの参照を予約します##val
か? 具体的には、##val テーブルが存在しないためにステートメントを作成する条件 ##val
の否定的な結果が失敗した直後に、他のすべてのセッションが参照を解放する可能性はありますか? はいの場合、そのテーブルの行をロックせずに現在のセッションから参照を予約して保持する方法。if
insert
##val