Aracılığıyla paylaş


sp_releaseapplock (Transact-sql)

Bir uygulamanın kaynak üzerindeki kilit serbest bırakır.

Konu bağlantısı simgesi 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

Ayrıca bkz.

Başvuru

applock_test (Transact-sql)

applock_test (Transact-sql)

sp_getapplock (Transact-sql)