最近公司gen_file新增一個gen07欄位,gen07是根據記錄數量自動遞增的,因為原系統中已有2000多筆數據,所以基本丟棄收工輸入的過程,於是Google了下,便有了以下代碼:
--自定函數
--CREATE FUNCTION [dbo].[PadLeft]
--(
--
-- @Source nvarchar(30), -- 原始字串
-- @PaddingChar nchar(1), -- 填補字元
-- @TotalWidth tinyint -- 總長度
--)
--
--RETURNS nvarchar(285)
--AS
--BEGIN
-- DECLARE @Result nvarchar(285)
-- SELECT @Result = REPLICATE(@PaddingChar, @TotalWidth - LEN(@Source)) + @Source
-- RETURN @Result
--
--END
--更新每個欄位
--Declare @i int
--set @i=000002
--declare @str varchar(6)
--Declare @gen01 varchar(7)
--Declare gen01s Cursor For select gen01 from gen_file
--open gen01s
--fetch NEXT from gen01s into @gen01
--while @@Fetch_Status=0
--begin
--set @str=@i
--update gen_file set gen07=dbo.PadLeft(@str,'0',6) where gen01=@gen01
--set @i=@i+1
--fetch next from gen01s into @gen01
--end
--close gen01s
--Deallocate gen01s
--最後刪除自定函數
--drop function dbo.PadLeft