sp_releaseapplock (T-SQL)
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Melepaskan kunci pada sumber daya aplikasi.
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)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk