您的位置:首页 > 数据库

将SQLServer中表按其结构生成SQl插入语句

2012-11-17 11:04 375 查看
前两天实施需要将SQLserver中表结构生成插入语句,在网上找到解决方案,整理了一下,转贴在此,供参考吧!步骤一、在sqlserver中建立存储过程。
sqlserver按表名生成插入语句存储过程CREATEprocedurespGenInsertSQL@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'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
GO


步骤二、在sql查询分析器中执行:execspGenInsertSQL'TableName';
步骤三、将查询出来的结果另存。

.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: