SQL批次指定某欄位的序號
前言
同事問他從取號檔那取了起始號(PREFIX000123)取了99筆,最後號是(PREFIX000221),有個99筆的資料要指定這此號碼要如何下SQL呢?
實作
想說用INENTITY FIELD來試!
- 先建立測試的#TABLE TABLE
--建立測試資訊 CREATE TABLE #T1 ( C1 VARCHAR(30) ,C2 VARCHAR(30) ) DECLARE @IDX INT SET @IDX = 1 --加入99筆資料 WHILE @IDX < 100 BEGIN INSERT #T1(C1, C2) VALUES('', 'C2' + STR(@IDX)) SET @IDX = @IDX + 1 END SELECT * FROM #T1
- 加入IDENTITY FIELD
--加入流水號欄位 ALTER TABLE #T1 ADD C3 INT IDENTITY(1,1) SELECT * FROM #T1
- 開始更新序號到C1欄位
--設定起始流水號 DECLARE @START_SEQ VARCHAR(64) SET @START_SEQ = 'PREFIX000123' --開始整批設定流水號到C1欄位 UPDATE #T1 SET C1 = 'PREFIX' + RIGHT('00000' + CAST(CAST(SUBSTRING(@START_SEQ, 7, 6) AS INT) + C3 - 1 AS VARCHAR), 6) --最後的結果 SELECT * FROM #T1
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^