zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

SQLServer存储过程生成insert语句实例

SQLServer实例存储 语句 过程 生成 INSERT
2023-06-13 09:15:12 时间

你肯定有过这样的烦恼,同样的表,不同的数据库,加入你不能执行select insert
那么你肯定需要一条这样的存储过程,之需要传入表明,就会给你生成数据的插入语句。
当然数据表数量太大,你将最好用别的方式

复制代码代码如下:


Create  proc[dbo].[spGenInsertSQL](@tablenamevarchar(256))
as
begin
declare@sqlvarchar(8000)
declare@sqlValuesvarchar(8000)
set@sql="("
set@sqlValues="values(""+"
select@sqlValues=@sqlValues+cols+"+"",""+",@sql=@sql+"["+name+"],"
from
     (selectcase
               whenxtypein(48,52,56,59,60,62,104,106,108,122,127)      

                    then"casewhen"+name+"isnullthen""NULL""else"+"cast("+name+"asvarchar)"+"end"

               whenxtypein(58,61)
                    --then"""""""""+convert(char(23),"+name+",121)+"""""""""--datetime   
                    then"casewhen"+name+"isnullthen""NULL""else"+"""""""""+"+"cast("+name+"asvarchar)"+"+"""""""""+"end"

              whenxtypein(167)

                    then"casewhen"+name+"isnullthen""NULL""else"+"""""""""+"+"replace("+name+","""""""","""""""""""")"+"+"""""""""+"end"

               whenxtypein(231)

                    then"casewhen"+name+"isnullthen""NULL""else"+"""N""""""+"+"replace("+name+","""""""","""""""""""")"+"+"""""""""+"end"

               whenxtypein(175)

                    then"casewhen"+name+"isnullthen""NULL""else"+"""""""""+"+"cast(replace("+name+","""""""","""""""""""")asChar("+cast(lengthasvarchar)+"))+"""""""""+"end"

               whenxtypein(239)

                    then"casewhen"+name+"isnullthen""NULL""else"+"""N""""""+"+"cast(replace("+name+","""""""","""""""""""")asChar("+cast(lengthasvarchar)+"))+"""""""""+"end"

               else"""NULL"""

             endasCols,name

        fromsyscolumns

       whereid=object_id(@tablename)

     )T
set@sql="select""INSERTINTO["+@tablename+"]"+left(@sql,len(@sql)-1)+")"+left(@sqlValues,len(@sqlValues)-4)+")""from"+@tablename
print@sql
exec(@sql)
end

SQL语句

最后的结果:
INSERTINTO[SysSample]([Id],[Name],[Age],[Bir],[Photo],[Note],[CreateTime])values("0002CA83-AF2F-4D8F-A345-33CA1CC7CF3C","任务调度系统",18,"2013-01-0221:42:30.013","",NULL,"2013-01-0221:42:30.013")
INSERTINTO[SysSample]([Id],[Name],[Age],[Bir],[Photo],[Note],[CreateTime])values("0004A6F3-EC28-4D1F-BA40-0FC4B2218C92","任务调度系统",18,"2013-07-0919:36:00.060","",NULL,"2013-07-0919:36:00.060")
INSERTINTO[SysSample]([Id],[Name],[Age],[Bir],[Photo],[Note],[CreateTime])values("00094D35-7B51-4EA3-871E-CE17E293B157","任务调度系统",18,"2013-05-1615:21:20.070","",NULL,"2013-05-1615:21:20.070")
INSERTINTO[SysSample]([Id],[Name],[Age],[Bir],[Photo],[Note],[CreateTime])values("000BFBB0-B37D-4D6E-9FA2-3069D4F18F84","任务调度系统",18,"2013-04-1111:41:50.030","",NULL,"2013-04-1111:41:50.030")
INSERTINTO[SysSample]([Id],[Name],[Age],[Bir],[Photo],[Note],[CreateTime])values("000C2CBC-E358-4469-BC2C-04F4DDCD72CD","任务调度系统",18,"2013-05-0616:07:00.037","",NULL,"2013-05-0616:07:00.037")
INSERTINTO[SysSample]([Id],[Name],[Age],[Bir],[Photo],[Note],[CreateTime])values("000CB795-40EC-4783-B7A4-8D298DF63B70","任务调度系统",18,"2013-01-2320:52:30.030","",NULL,"2013-01-2320:52:30.030")