日期:2014-05-18  浏览次数:20392 次

如何将一个包含数据的表生成一个SQL语句~~
假设有一个表A,里面包含了大量数据,我想把这里面的所有内容包含表结构和数据生成一个SQL语句,可以在查询分析器中执行一下,再生成同样的一个表,不知要如何作?~~

------解决方案--------------------
我有一个办法,你可以用企业管理器的导出数据功能把数据导出到txt文件

其中行用 "; ",列用 ", "

导出后在语句前加入Create Table 语句
加上Insert TableName Select

然后替换 "; "为 " union all Select "

去掉最后一个 " union all Select "

这时文本文件中的数据就可以直接在查询分析器中运行了,注意identity列,先去掉这个属性
最后再加条alter语句加上,这样方便点
------解决方案--------------------
/*
调用方法,如有表 table1
proc_insert 'table1 '
可以生成 insert 语句
*/
create proc proc_insert (@tablename varchar(256))
as
begin
set nocount on
declare @sqlstr varchar(4000)
declare @sqlstr1 varchar(4000)
declare @sqlstr2 varchar(4000)
select @sqlstr= 'select ' 'insert '+@tablename
select @sqlstr1= ' '
select @sqlstr2= ' ( '
select @sqlstr1= ' values ( ' '+ '
select @sqlstr1=@sqlstr1+col+ '+ ' ', ' '+ ' ,@sqlstr2=@sqlstr2+name + ', ' from (select case
-- when a.xtype =173 then 'case when '+a.name+ ' is null then ' 'NULL ' ' else '+ 'convert(varchar( '+convert(varchar(4),a.length*2+2)+ '), '+a.name + ') '+ ' end '
when a.xtype =104 then 'case when '+a.name+ ' is null then ' 'NULL ' ' else '+ 'convert(varchar(1), '+a.name + ') '+ ' end '
when a.xtype =175 then 'case when '+a.name+ ' is null then ' 'NULL ' ' else '+ ' ' ' ' ' ' ' ' '+ '+ 'replace( '+a.name+ ', ' ' ' ' ' ' ' ', ' ' ' ' ' ' ' ' ' ' ' ') ' + '+ ' ' ' ' ' ' ' ' '+ ' end '
when a.xtype =61 then 'case when '+a.name+ ' is null then ' 'NULL ' ' else '+ ' ' ' ' ' ' ' ' '+ '+ 'convert(varchar(23), '+a.name + ',121) '+ '+ ' ' ' ' ' ' ' ' '+ ' end '
when a.xtype =106 then 'case when '+a.name+ ' is null then ' 'NULL ' ' else '+ 'convert(varchar( '+convert(varchar(4),a.xprec+2)+ '), '+a.name + ') '+ ' end '
when a.xtype =62 then 'case when '+a.name+ ' is null then ' 'NULL ' ' else '+ 'convert(varchar(23), '+a.name + ',2) '+ ' end '
when a.xtype =56 then 'case when '+a.name+ ' is null then ' 'NULL ' ' else '+ 'convert(varchar(11), '+a.name + ') '+ ' end '
when a.xtype =60 then 'case when '+a.name+ ' is null then ' 'NULL ' ' else '+ 'convert(varchar(22), '+a.name + ') '+ ' end '
when a.xtype =239 then 'case when '+a.name+ ' is null then ' 'NULL ' ' else '+ ' ' ' ' ' ' ' ' '+ '+ 'replace( '+a.name+ ', ' ' ' ' ' ' ' ', ' ' &#