Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Melepaskan kunci pada sumber daya aplikasi.
Sintaks
sp_releaseapplock
[ [ @Resource = ] N'Resource' ]
[ , [ @LockOwner = ] 'LockOwner' ]
[ , [ @DbPrincipal = ] N'DbPrincipal' ]
[ ; ]
Argumen
[ @Resource = ] N'Sumber daya'
Nama sumber daya kunci yang ditentukan oleh aplikasi klien.
@Resource adalah nvarchar(255), dengan default NULL.
@Resource dibandingkan biner, dengan demikian peka huruf besar/kecil terlepas dari pengaturan kolater database saat ini.
Aplikasi harus memastikan bahwa sumber daya unik. Nama yang ditentukan di-hash secara internal ke dalam nilai yang dapat disimpan di manajer kunci SQL Server.
[ @LockOwner = ] 'Pemilik Kunci'
Pemilik kunci, yang merupakan nilai @LockOwner saat kunci diminta.
@LockOwner adalah varchar(32), dengan default Transaction. Nilainya juga bisa .Session
Ketika nilai @LockOwner adalah Transaksi, secara default atau ditentukan secara eksplisit, sp_getapplock harus dijalankan dari dalam transaksi.
[ @DbPrincipal = ] N'DbPrincipal'
Peran pengguna, peran, atau aplikasi yang memiliki izin ke objek dalam database.
@DbPrincipal adalah sysname, dengan default public. Pemanggil fungsi harus menjadi anggota database_principal, dbo, atau peran database tetap db_owner agar fungsi berhasil dipanggil.
Mengembalikan nilai kode
>= 0 (berhasil), atau < 0 (kegagalan).
| Nilai | Hasil |
|---|---|
0 |
Kunci berhasil dirilis. |
-999 |
Menunjukkan validasi parameter atau kesalahan panggilan lainnya. |
Keterangan
Ketika aplikasi memanggil sp_getapplock beberapa kali untuk sumber daya kunci yang sama, sp_releaseapplock harus dipanggil frekuensi yang sama untuk melepaskan kunci.
Ketika server dimatikan karena alasan apa pun, kunci dilepaskan.
Izin
Memerlukan keanggotaan dalam peran publik .
Contoh
Contoh berikut merilis kunci yang terkait dengan transaksi saat ini pada sumber daya Form1 dalam AdventureWorks2025 database.
USE AdventureWorks2022;
GO
EXECUTE sp_getapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1',
@LockMode = 'Shared';
EXECUTE sp_releaseapplock
@DbPrincipal = 'dbo',
@Resource = 'Form1';
GO