如何将sqlserver表中的数据导出sql语句或生成insert into语句

如何将sqlserver表中的数据导出sql语句或生成insert into语句,第1张

概述转自:http://hi.baidu.com/yequanfu/blog/item/2439be774add821ab151b9e1.html 输入表名,生成插入语句 drop proc proc_insert go create proc proc_insert (@tablename varchar(256)) as begin set nocount on declare @sqlstr v

转自:http://hi.baidu.com/yequanfu/blog/item/2439be774add821ab151b9e1.html

入表名,生成插入语句

drop proc proc_insert
go
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 =127 then 'case when '+a.name+' is null then ''NulL'' else '+'convert(varchar(20),'+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),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+','''''''''''')' + '+'''''''''+' end'
when a.xtype =108 then 'case when '+a.name+' is null then ''NulL'' else '+'convert(varchar('+convert(varchar(4),'+a.name +')'+' end'
when a.xtype =231 then 'case when '+a.name+' is null then ''NulL'' else '+'''''''''+'+'replace('+a.name+','''''''''''')' + '+'''''''''+' end'
when a.xtype =59 then 'case when '+a.name+' is null then ''NulL'' else '+'convert(varchar(23),2)'+' end'
when a.xtype =58 then 'case when '+a.name+' is null then ''NulL'' else '+'''''''''+'+'convert(varchar(23),121)'+ '+'''''''''+' end'
when a.xtype =52 then 'case when '+a.name+' is null then ''NulL'' else '+'convert(varchar(12),'+a.name +')'+' end'
when a.xtype =122 then 'case when '+a.name+' is null then ''NulL'' else '+'convert(varchar(22),'+a.name +')'+' end'
when a.xtype =48 then 'case when '+a.name+' is null then ''NulL'' else '+'convert(varchar(6),'+a.name +')'+' end'
-- when a.xtype =165 then 'case when '+a.name+' is null then ''NulL'' else '+'convert(varchar('+convert(varchar(4),'+a.name +')'+' end'
when a.xtype =167 then 'case when '+a.name+' is null then ''NulL'' else '+'''''''''+'+'replace('+a.name+','''''''''''')' + '+'''''''''+' end'
else '''NulL'''
end as col,a.colID,a.name
from syscolumns a where a.ID = object_ID(@tablename) and a.xtype <>189 and a.xtype <>34 and a.xtype <>35 and a.xtype <>36
)t order by colID

select @sqlstr=@sqlstr+left(@sqlstr2,len(@sqlstr2)-1)+') '+left(@sqlstr1,len(@sqlstr1)-3)+')'' from '+@tablename
-- print @sqlstr
exec( @sqlstr)
set nocount off
end
go

select * from systypes

 

使用方法: 

exec proc_insert 你的表名 

选择【执行模式】为“以文本显示结果”,然后将运行后的结果存成.sql,加上用sql Server生成的数据库脚本就可以了。

另外可以利用第三方工具,导出饮食备注型字段的数据数据可以用powerbuilder。在database painter里面,用sql选出,或者直接打开表,点击生成的List datawindow,然后在菜单file->save rows as->选择sql,那么生成的SQL语句就包括建表和insert数据的sql了。

还有最完善的方式就是自己编程实现导入导出,这样可以应对所有情况的数据转换。

总结

以上是内存溢出为你收集整理的如何将sqlserver表中的数据导出sql语句或生成insert into语句全部内容,希望文章能够帮你解决如何将sqlserver表中的数据导出sql语句或生成insert into语句所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1181239.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)