sp_releaseapplock (Transact-SQL)
Uygulama kaynaküzerinde kilit serbest bırakır.
Sözdizimi
sp_releaseapplock [ @Resource = ] 'resource_name'
[ , [ @LockOwner = ] 'lock_owner' ]
[ , [ @DbPrincipal = ] 'database_principal' ]
[ ; ]
Bağımsız değişkenler
[ @Resource= ] 'resource_name'
kilitkaynak adı, istemci uygulama tarafından belirtilir. Uygulama kaynak benzersiz olduğundan emin olmalısınız.Belirtilen adı dahili olarak depolanabilir bir değer içine karıştırılır SQL Server kilit Yöneticisi.resource_nameİş nvarchar(255)ile hiçbir varsayılan.resource_nameolan ikili karşılaştırıldığında, böylece durumolur-duyarlı geçerli veritabanı harmanlama ayarları ne olursa olsun.[ @LockOwner= ] 'lock_owner'
Sahibi olan kilit, lock_owner değer kilit istendi.lock_owneris nvarchar(32).Değeri olabilir Transaction (varsayılan) veya Session.Zaman lock_owner değeri Transaction, bunun varsayılan veya açıkça belirtilen sp_getapplock gerekir yürütülen karşı içinde hareket.[ @DbPrincipal= ] 'database_principal'
Kullanıcı, rol veya bir veritabanında bir nesne için izinleri olan uygulama rolü olabilir.işlev çağıran bir üye olmanız database_principal, dbo, veya db_owner işlev başarıyla çağırmak için sabit veritabanı rolü .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ğda bir sp_getapplock birden çok kez aynı kilit kaynakiçin sp_releaseapplock aynı sayıda kilitaçmak için çağrılmalıdır.
kapalı , kilitleri serbest bırakılırlar.
İzinler
Üyelik gerektiren public rolü.
Örnekler
Aşağıdaki örnek kaynakGeçerli hareketle ilişkili kilit kaldırırForm1 , AdventureWorks2008R2 veritabanı.
USE AdventureWorks2008R2;
GO
EXEC sp_getapplock @DbPrincipal = 'dbo', @Resource = 'Form1',
@LockMode = 'Shared';
EXEC sp_releaseapplock @DbPrincipal = 'dbo', @Resource = 'Form1';
GO
Ayrıca bkz.