SQL-自動補流水號
之前發表過一篇可以找出行號,
再利用行號編成流水號,
而同事自已用 T-SQL也寫了一個類似的,
主要方法就是先找出要「被更改」的資料,
然後用「CURSOR 」一筆一筆修改,
跟寫程式做多筆更改是一樣的~~~
DECLARE @IDNO VARCHAR(10) DECLARE @LoopTag INT DECLARE @SN INT SELECT @SN=1 --- 指標宣告,定義指標所指資料--- DECLARE contact_cursor CURSOR FOR select table_key FROM table_Name --- 啟動指標--- OPEN contact_cursor FETCH NEXT FROM contact_cursor INTO @LoopTag --->將指標SQL查詢的值傳給@LoopTag --- 指標迴圈:開始,指標所指的資料紀錄不為空則進入迴圈--- WHILE @@FETCH_STATUS = 0 BEGIN IF @SN < 10 BEGIN Set @IDNO='000'+convert(varchar,@SN) END ELSE IF @SN < 100 BEGIN Set @IDNO='00'+convert(varchar,@SN) END ELSE IF @SN < 1000 BEGIN Set @IDNO='0'+convert(varchar,@SN) END ELSE BEGIN Set @IDNO=convert(varchar,@SN) END --UPDATE table_Name SET @IDNO WHERE table_key = @LoopTag PRINT @LoopTag + @IDNO; SELECT @SN=@SN+1 END ---> 結束內部迴圈 FETCH NEXT FROM contact_cursor INTO @LoopTag ---> 將指標只向下一筆資料 END ---> 結束外部迴圈 --- 結束並釋放指標--- CLOSE contact_cursor DEALLOCATE contact_cursor
自我LV~