Dalam SQL Server, kemas kini serentak boleh dibenarkan dengan menggunakan pembayang pertanyaan WITH (ROWLOCK). Pertanyaan ini menggesa untuk mendapatkan kunci peringkat baris untuk setiap baris yang dikembalikan, membenarkan sambungan lain mengemas kini baris berbeza secara serentak yang tidak bercanggah dengan pertanyaan semasa.
SQL Server Concurrent Updates SQL
Soalan: Bagaimana untuk menulis pertanyaan SQL Server untuk membenarkan kemas kini serentak?
Jawapan:
Menggunakan pembayang pertanyaan WITH (ROWLOCK)
, anda boleh membenarkan kemas kini serentak dalam SQL Server. WITH (ROWLOCK)
查询提示,可以在 SQL Server 中允许并发更新。
详细说明:
ROWLOCK
查询提示告诉 SQL Server 为返回的每一行获取行级锁。这允许其他连接同时更新与当前查询不冲突的不同行。
以下示例说明了如何使用 WITH (ROWLOCK)
:
<code class="sql">-- 查询表 Customer 并允许并发更新 SELECT * FROM Customer WITH (ROWLOCK) WHERE LastName = 'Smith';</code>
在上面的查询中,SQL Server 将为表 Customer
中 LastName
为 'Smith' 的每一行获取行级锁。这允许其他连接同时更新 Customer
表中 LastName
不为 'Smith' 的行。
注意事项:
WITH (ROWLOCK)
ROWLOCK
memberitahu SQL Server untuk memperoleh kunci peringkat baris untuk setiap baris yang dikembalikan. Ini membolehkan sambungan lain mengemas kini baris berbeza secara serentak yang tidak bercanggah dengan pertanyaan semasa. WITH (ROWLOCK)
: LastName
untuk jadual Customer > Dapatkan kunci peringkat baris untuk setiap baris 'Smith'. Ini membenarkan sambungan lain mengemas kini baris secara serentak dalam jadual <code>Customer
dengan LastName
bukan 'Smith'. 🎜🎜🎜Nota: 🎜🎜WITH (ROWLOCK)
boleh mengurangkan prestasi kerana ia memerlukan mendapatkan kunci untuk setiap baris. 🎜🎜Gunakan petua pertanyaan ini hanya apabila benar-benar perlu. 🎜🎜Jika boleh, gunakan mekanisme penguncian yang lebih halus, seperti mengunci indeks atau halaman tertentu dalam jadual. 🎜🎜Atas ialah kandungan terperinci Bagaimana untuk menulis sql kemas kini serentak dalam sqlserver. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!