我們有一個表格,其中包含檔案的參考編號。該表的簡化版本,稱為 RefNum,是,
id - int - identity
refN - smallint - the reference number
avail - bit - is number available (0 - is available, 1 - not available)
該表預先填充了avail = 0 的refN。如果avail 為零,則參考號可用。
如何撰寫 SQL 來選擇下一個可用的參考號并更新它(設定為 1),而不用擔心兩個用戶得到相同的號碼?
我可以簡單地將 SQL 陳述句包裝在 BEGIN / COMMIT TRANSACTION 塊中嗎?
我確定我想太多了。
提前致謝。
uj5u.com熱心網友回復:
我也會推薦一個序列,但如果你真的必須使用那里的東西,那么以下應該可以作業:
DECLARE @op TABLE (RefN smallint NOT NULL);
UPDATE RefNums
SET avail = 1
OUTPUT inserted.RefN
INTO @op
WHERE RefN =
(
SELECT MIN(RefN)
FROM RefNums WITH (UPDLOCK)
WHERE avail = 0
);
SELECT *
FROM @op;
uj5u.com熱心網友回復:
使用序列作為參考編號和用戶序列進行更新
檢查以下網址
鏈接:https ://www.c-sharpcorner.com/blogs/create-sequence-in-sql
序列每次生成唯一編號
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/507041.html
標籤:sql服务器
上一篇:在使用GROUPBY的ForXMLPath之前排序?
下一篇:SQLServer動態不同值到列
