码迷,mamicode.com
首页 > 数据库 > 详细

【SQL Sever】将SQL Sever中的一个数据表的数据导出为insert语句

时间:2016-09-26 16:12:25      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

例如:这SQL   Sever中的一张数据表,想要将这张数据表中的数据  转化成一个一个的insert语句存储在txt的文档中,那么不论走到那里这个insert语句一执行,我们就能将这个数据表中的数据插入到另一个地方了。

技术分享

1》在新建查询中,创建一个对象,这个对象就是用来产生这个对象的,名字叫proc_insert,我们可以创建多个不重名的对象,当然也可以删除这个对象。

技术分享
 1 create proc proc_insert (@tablename varchar(256))
 2 as
 3 begin
 4 set nocount on
 5 declare @sqlstr varchar(4000)
 6 declare @sqlstr1 varchar(4000)
 7 declare @sqlstr2 varchar(4000)
 8 select @sqlstr=select ‘‘insert +@tablename
 9 select @sqlstr1=‘‘
10 select @sqlstr2= (
11 select @sqlstr1=  values ( ‘‘+
12 select @sqlstr1=@sqlstr1+col++‘‘,‘‘+ ,@sqlstr2=@sqlstr2+name +, from (select case 
13 -- 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‘
14 when a.xtype =127 then case when +a.name+ is null then ‘‘NULL‘‘ else +convert(varchar(20),+a.name +)+ end
15 when a.xtype =104 then case when +a.name+ is null then ‘‘NULL‘‘ else +convert(varchar(1),+a.name +)+ end
16 when a.xtype =175 then case when +a.name+ is null then ‘‘NULL‘‘ else +‘‘‘‘‘‘‘‘‘++replace(+a.name+,‘‘‘‘‘‘‘‘,‘‘‘‘‘‘‘‘‘‘‘‘) + +‘‘‘‘‘‘‘‘‘+ end
17 when a.xtype =61 then case when +a.name+ is null then ‘‘NULL‘‘ else +‘‘‘‘‘‘‘‘‘++convert(varchar(23),+a.name +,121)+ +‘‘‘‘‘‘‘‘‘+ end
18 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
19 when a.xtype =62 then case when +a.name+ is null then ‘‘NULL‘‘ else +convert(varchar(23),+a.name +,2)+ end
20 when a.xtype =56 then case when +a.name+ is null then ‘‘NULL‘‘ else +convert(varchar(11),+a.name +)+ end
21 when a.xtype =60 then case when +a.name+ is null then ‘‘NULL‘‘ else +convert(varchar(22),+a.name +)+ end
22 when a.xtype =239 then case when +a.name+ is null then ‘‘NULL‘‘ else +‘‘‘‘‘‘‘‘‘++replace(+a.name+,‘‘‘‘‘‘‘‘,‘‘‘‘‘‘‘‘‘‘‘‘) + +‘‘‘‘‘‘‘‘‘+ end
23 when a.xtype =108 then case when +a.name+ is null then ‘‘NULL‘‘ else +convert(varchar(+convert(varchar(4),a.xprec+2)+),+a.name +)+ end
24 when a.xtype =231 then case when +a.name+ is null then ‘‘NULL‘‘ else +‘‘‘‘‘‘‘‘‘++replace(+a.name+,‘‘‘‘‘‘‘‘,‘‘‘‘‘‘‘‘‘‘‘‘) + +‘‘‘‘‘‘‘‘‘+ end
25 when a.xtype =59 then case when +a.name+ is null then ‘‘NULL‘‘ else +convert(varchar(23),+a.name +,2)+ end
26 when a.xtype =58 then case when +a.name+ is null then ‘‘NULL‘‘ else +‘‘‘‘‘‘‘‘‘++convert(varchar(23),+a.name +,121)+ +‘‘‘‘‘‘‘‘‘+ end
27 when a.xtype =52 then case when +a.name+ is null then ‘‘NULL‘‘ else +convert(varchar(12),+a.name +)+ end
28 when a.xtype =122 then case when +a.name+ is null then ‘‘NULL‘‘ else +convert(varchar(22),+a.name +)+ end
29 when a.xtype =48 then case when +a.name+ is null then ‘‘NULL‘‘ else +convert(varchar(6),+a.name +)+ end
30 -- when a.xtype =165 then ‘case when ‘+a.name+‘ is null then ‘‘NULL‘‘ else ‘+‘convert(varchar(‘+convert(varchar(4),a.length*2+2)+‘),‘+a.name +‘)‘+‘ end‘
31 when a.xtype =167 then case when +a.name+ is null then ‘‘NULL‘‘ else +‘‘‘‘‘‘‘‘‘++replace(+a.name+,‘‘‘‘‘‘‘‘,‘‘‘‘‘‘‘‘‘‘‘‘) + +‘‘‘‘‘‘‘‘‘+ end
32 else ‘‘‘NULL‘‘‘
33 end as col,a.colid,a.name
34 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
35 )t order by colid
36 
37 select @sqlstr=@sqlstr+left(@sqlstr2,len(@sqlstr2)-1)+) +left(@sqlstr1,len(@sqlstr1)-3)+)‘‘ from +@tablename
38 -- print @sqlstr
39 exec( @sqlstr)
40 set nocount off
41 end
42 go
View Code

2》执行这个对象,让他产生insert语句

技术分享
1 exec proc_insert p_phone;
View Code

效果如下:

技术分享

3》第一步全选,第二步将结果另存为

技术分享

4》这样就生成了一个文本文件了

技术分享

5》如果这里面的id是自增的,或者不想让某一列插入,那就将这些代码放在word中进行替换。

 

END----

【SQL Sever】将SQL Sever中的一个数据表的数据导出为insert语句

标签:

原文地址:http://www.cnblogs.com/sxdcgaq8080/p/5909300.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!