Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Bir uygulama kaynağına kilitleme açar.
Transact-SQL söz dizimi kuralları
Sözdizimi
sp_releaseapplock
[ [ @Resource = ] N'Resource' ]
[ , [ @LockOwner = ] 'LockOwner' ]
[ , [ @DbPrincipal = ] N'DbPrincipal' ]
[ ; ]
Arguments
[ @Resource = ] N'Resource'
İstemci uygulaması tarafından belirtilen bir kilit kaynak adı.
@Resourcenvarchar(255)'dir, varsayılan olarak NULL.
@Resource ikili karşılaştırmadır, bu nedenle mevcut veritabanının derleme ayarlarından bağımsız olarak büyük harf duyarlıdır.
Uygulama, kaynağın benzersiz olmasını sağlamalıdır. Belirtilen isim, SQL Server kilit yöneticisinde depolanabilecek bir değere dahili olarak hash edilir.
[ @LockOwner = ] 'Kilit Sahibi'
Kilidin sahibi, ki kilit istendiğinde @LockOwner değerdir.
@LockOwnervarchar(32)'dir ve varsayılan olarak ' Transactiondir. Değer ayrıca olabilir Session.
@LockOwner değeri Transaction ise, varsayılan olarak veya açıkça belirtilmişse, sp_getapplock işlem içinden yürütülmelidir.
[ @DbPrincipal = ] N'DbPrincipal'
Veritabanındaki bir nesneye yetkileri olan kullanıcı, rol veya uygulama rolü.
@DbPrincipalsysname'dir ve varsayılan olarak .public Fonksiyonu çağıran kişi, fonksiyonu başarılı bir şekilde çağırabilmesi için database_principal, dbo veya db_owner sabit veritabanı rolünün bir üyesi olmalıdır.
Dönüş kodu değerleri
>= 0 (başarı), ya < 0 da (başarısızlık).
| Değer | Result |
|---|---|
0 |
Lock başarıyla serbest bırakıldı. |
-999 |
Parametre doğrulama veya başka çağrı hatasını gösterir. |
Açıklamalar
Bir uygulama aynı kilit kaynağı için birden fazla kez çağrıldığında sp_getapplock , sp_releaseapplock kilidin serbest bırakılması için aynı sayıda kez çağrılmalıdır.
Sunucu herhangi bir nedenle kapandığında kilitler açılıyor.
Permissions
"" genel "" rolüne üyelik gerektirir.
Örnekler
Aşağıdaki örnek, veritabanındaki kaynaktaki Form1AdventureWorks2025 mevcut işlemle ilişkili kilidi serbest bırakır.
USE AdventureWorks2022;
GO
EXECUTE sp_getapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1',
@LockMode = 'Shared';
EXECUTE sp_releaseapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1';
GO