sp_releaseapplock (Transact-SQL)

Uygulama kaynaküzerinde kilit serbest bırakır.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

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