我有一個表,有一個資料型別 [int] 列 [ LNITMSEQ ]。這些數字都是唯一的。例如,
第一行值 = 16384,
第二行值 = 32768 = 16384*2
在洗掉記錄之前,

洗掉記錄后

我現在可以如何使用 SQL 腳本重新編號嗎?我希望使用存盤程序來呼叫它
uj5u.com熱心網友回復:
用于ROW_NUMBER對行重新編號,如下所示:
DECLARE @SOP10200 table (LNITMSEQ int);
INSERT INTO @SOP10200 (LNITMSEQ)
VALUES
(16384),
(32768),
(49152),
(65536);
DELETE FROM @SOP10200 WHERE LNITMSEQ = 16384;
WITH cte AS (
SELECT LNITMSEQ
, 16348 * ROW_NUMBER() OVER (ORDER BY LNITMSEQ ASC) AS NEW_LNITMSEQ
FROM @SOP10200
)
UPDATE cte SET LNITMSEQ = NEW_LNITMSEQ;
SELECT *
FROM @SOP10200
ORDER BY LNITMSEQ;
回傳(忽略不相關的其他列):
| LNITMSEQ |
|---|
| 16348 |
| 32696 |
| 49044 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/504869.html
