因為要做數據遷移,也就是業務數據庫的數據要遷移到歷史數據庫,這兩個數據庫理論上表結構是一樣的,但因為時間原因,可能業務庫升級了表結構,但歷史庫沒有升級,且加字段的順序不一樣,導致
insert into Tb select * from DB.tB
這類的腳本出錯概率比較大,所以今天寫了個函數用來通過表名,自動生成列名
create function GetColumns ( @tableName varchar(64) ) returns varchar(4000) as /* 作用:自動生成列名,方便存儲過程中調用 作者:lcl 日期:2015-08-24 */ begin DECLARE @columns varchar(4000) select @columns='' select @columns=@columns+'['+a.name+'],' from syscolumns a(nolock), sysobjects b(nolock) where a.id=b.id and b.name=''+@tableName+'' select @columns=SUBSTRING(@columns,1,LEN(@columns)-1) return @columns end