SET LOCK_TIMEOUT (Transact-SQL)

Berlaku untuk: SQL Server (semua versi yang didukung) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Menentukan jumlah milidetik pernyataan menunggu kunci dilepaskan.

tautan topikIkon Konvensi Sintaks Transact-SQL

Sintaks

SET LOCK_TIMEOUT timeout_period  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

timeout_period
Adalah jumlah milidetik yang akan berlalu sebelum Microsoft SQL Server mengembalikan kesalahan penguncian. Nilai -1 (default) menunjukkan tidak ada periode waktu habis (yaitu, tunggu selamanya).

Saat menunggu kunci melebihi nilai waktu habis, kesalahan dikembalikan. Nilai 0 berarti tidak menunggu sama sekali dan mengembalikan pesan segera setelah kunci ditemui.

Keterangan

Di awal koneksi, pengaturan ini memiliki nilai -1. Setelah diubah, pengaturan baru tetap berlaku untuk sisa koneksi.

Pengaturan SET LOCK_TIMEOUT diatur pada waktu eksekusi atau run time dan bukan pada waktu penguraian.

Petunjuk penguncian READPAST menyediakan alternatif untuk opsi SET ini.

Pernyataan CREATE DATABASE, ALTER DATABASE, dan DROP DATABASE tidak mematuhi pengaturan SET LOCK_TIMEOUT.

Izin

Memerlukan keanggotaan dalam peran publik .

Contoh

J: Atur batas waktu penguncian ke 1800 milidetik

Contoh berikut mengatur periode waktu habis kunci ke 1800 milidetik.

SET LOCK_TIMEOUT 1800;  
GO  

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

B. Atur batas waktu penguncian untuk menunggu selamanya agar kunci dilepaskan.

Contoh berikut mengatur batas waktu penguncian untuk menunggu selamanya dan tidak pernah kedaluwarsa. Ini adalah perilaku default yang sudah diatur di awal setiap koneksi.

SET LOCK_TIMEOUT -1;  

Contoh berikut mengatur periode waktu habis kunci ke 1800 milidetik. Dalam rilis ini, Microsoft Azure Synapse Analytics akan berhasil mengurai pernyataan, tetapi akan mengabaikan nilai 1800 dan terus menggunakan perilaku default.

SET LOCK_TIMEOUT 1800;  

Lihat juga

@@LOCK_TIMEOUT (T-SQL)
Pernyataan SET (Transact-SQL)