sp_releaseapplock (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Melepaskan kunci pada sumber daya aplikasi.

Konvensi sintaks transact-SQL

Sintaks

  
sp_releaseapplock [ @Resource = ] 'resource_name'   
     [ , [ @LockOwner = ] 'lock_owner' ]  
     [ , [ @DbPrincipal = ] 'database_principal' ]  
[ ; ]  

Argumen

[ @Resource= ] 'resource_name'
Adalah nama sumber daya kunci yang ditentukan oleh aplikasi klien. 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. resource_name adalah nvarchar(255) tanpa default. resource_name biner dibandingkan, dengan demikian peka huruf besar/kecil terlepas dari pengaturan kolater database saat ini.

[ @LockOwner= ] 'lock_owner'
Adalah pemilik kunci, yang merupakan nilai lock_owner saat kunci diminta. lock_owner adalah nvarchar(32). Nilainya dapat berupa Transaksi (default) atau Sesi. Ketika nilai lock_owner adalah Transaksi, secara default atau ditentukan secara eksplisit, sp_getapplock harus dijalankan dari dalam transaksi.

[ @DbPrincipal= ] 'database_principal'
Adalah peran pengguna, peran, atau aplikasi yang memiliki izin ke objek dalam database. Pemanggil fungsi harus menjadi anggota database_principal, dbo, atau peran database tetap db_owner agar fungsi berhasil dipanggil. Defaultnya adalah publik.

Mengembalikan Nilai Kode

>= 0 (berhasil), atau < 0 (kegagalan)

Value 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 AdventureWorks2022 database.

USE AdventureWorks2022;  
GO  
EXEC sp_getapplock @DbPrincipal = 'dbo', @Resource = 'Form1',   
     @LockMode = 'Shared';  
EXEC sp_releaseapplock @DbPrincipal = 'dbo', @Resource = 'Form1';  
GO  

Lihat Juga

APPLOCK_MODE (T-SQL)
APPLOCK_TEST (T-SQL)
sp_getapplock (T-SQL)