sp_releaseapplock (Transact-sql)
Bir uygulamanın kaynak üzerindeki kilit serbest bırakır.
Transact-SQL Sözdizim Kuralları
Sözdizimi
sp_releaseapplock [ @Resource = ] 'resource_name'
[ , [ @LockOwner = ] 'lock_owner' ]
[ , [ @DbPrincipal = ] 'database_principal' ]
[ ; ]
Bağımsız değişkenler
[ @Resource= ] 'resource_name'
Kilit kaynak adı, istemci uygulaması tarafından belirtilir. Uygulama kaynağı benzersiz olduğundan emin olmalısınız. Belirtilen adı dahili olarak içine saklanabilir bir değer sağlaması SQL ServerKilit Yöneticisi. resource_nameise nvarchar(255)hiçbir varsayılan ile. resource_nameolan ikili karşılaştırıldığında, böylece geçerli veritabanı harmanlama ayarlarına bakılmaksızın duyarlı.[ @LockOwner= ] 'lock_owner'
Sahibi olan kilit, lock_ownerdeğeri kilit istendiğinde. lock_owneris nvarchar(32). Değer-ebilmek var olmak Transaction(varsayılan) veya Session. Ne zaman lock_ownerdeğeri Transaction, tarafından varsayılan ya da açıkça, belirtilen sp_getapplockgelen bir işlemde yürütülmelidir.[ @DbPrincipal= ] 'database_principal'
Kullanıcı, rol veya bir veritabanında bir nesne izinleri olan uygulama rolü olduğunu. İşlevi çağıran bir üyesi olmanız database_principal, dbo, ya da db_ownersabit veritabanı rolü başarıyla işlevi çağırmak için. Varsayılan ortak.
Dönüş Kodu Değerleri
>= 0 (başarılı) veya < 0 (hata)
Değer |
Sonuç |
---|---|
0 |
Kilidi başarıyla yayımlandı. |
-999 |
Parametre doğrulama veya diğer çağrısı hata gösterir. |
Açıklamalar
Uygulama çağırdığında sp_getapplockbirden çok kez aynı kilit kaynak için sp_releaseapplockaynı sayıda kilidi açmak için çağrılmalıdır.
Sunucu herhangi bir nedenle kapatıldığında kilitleri serbest bırakılır.
İzinler
Üyelik publicrolü.
Örnekler
Aşağıdaki örnek geçerli hareketin kaynağı ile ilgili kilidi kaldırır Form1de AdventureWorks2012veritabanı.
USE AdventureWorks2012;
GO
EXEC sp_getapplock @DbPrincipal = 'dbo', @Resource = 'Form1',
@LockMode = 'Shared';
EXEC sp_releaseapplock @DbPrincipal = 'dbo', @Resource = 'Form1';
GO
USE AdventureWorks2012;
GO
EXEC sp_getapplock @DbPrincipal = 'dbo', @Resource = 'Form1',
@LockMode = 'Shared';
EXEC sp_releaseapplock @DbPrincipal = 'dbo', @Resource = 'Form1';
GO