博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将表数据生成Insert脚本
阅读量:6370 次
发布时间:2019-06-23

本文共 4460 字,大约阅读时间需要 14 分钟。

将表数据生成Insert脚本 

 

--
 ============================================= 
--
 Author: 华岭 
--
 Create date: 2008-10-28 
--
 Description: 将表数据生成Insert脚本 
--
 Demo : exec pCreateInsertScript 'BexmCodeType','dictypeid = 61'  
--
        exec pCreateInsertScript 'SYS_AUTHENROLE','1=1'
--
 ============================================= 
ALTER 
proc 
[
dbo
].
[
pCreateInsertScript
] (
@tablename 
varchar(
256),
@con 
nvarchar(
400)) 
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
+
'
,
''''''''
,
''''''''''''
)
' 
+ 
'
+
'''''''''
+
'
 end
' 
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
' 
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),
'
+a.name 
+
'
,2)
'
+
'
 end
' 
when a.xtype 
=
58 
then 
'
case when 
'
+a.name
+
'
 is null then 
''
NULL
''
 else 
'
+
'''''''''
+
'
+
'
convert(varchar(23),
'
+a.name 
+
'
,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 
=
127 
then 
'
case when 
'
+a.name
+
'
 is null then 
''
NULL
''
 else 
'
+
'
convert(varchar(6),
'
+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.length
*
2
+
2)
+
'
),
'
+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 
if 
@con  
is 
not 
null 
  
select 
@sqlstr
=
@sqlstr
+left(
@sqlstr2,
len(
@sqlstr2)
-
1)
+
'
'
+left(
@sqlstr1,
len(
@sqlstr1)
-
3)
+
'
)
''
 from 
'
+
@tablename 
+ 
'
 where 1=1 and 
' 
+ 
isnull(
@con,
''
else
  
select 
@sqlstr
=
@sqlstr
+left(
@sqlstr2,
len(
@sqlstr2)
-
1)
+
'
'
+left(
@sqlstr1,
len(
@sqlstr1)
-
3)
+
'
)
''
 from 
'
+
@tablename 
+ 
'
 where 1=1 and 
' 
print 
@sqlstr 
exec
@sqlstr

end
 

 

使用:

SET   
IDENTITY_INSERT   TableName   
ON 
do   
insert 
--
   resume 

SET   
IDENTITY_INSERT   TableName   
OFF 
 

转载于:https://www.cnblogs.com/luomingui/archive/2011/09/23/2186048.html

你可能感兴趣的文章
100万的大数据人才缺口,谁来解决?
查看>>
商标转让和域名转让的区别是什么?
查看>>
《数值分析(原书第2版)》—— 1.1 二分法
查看>>
Instor公司发布一款免费的数据中心成本估算工具
查看>>
公交监控系统之弊须有人出来认头
查看>>
STiD推出两款UHF RFID标签,适用于航空航天、石油等行业
查看>>
注意五大问题,避免CRM低效问题
查看>>
物联网将如何塑造未来的网络
查看>>
大连应探索适合智慧城市建设运营模式
查看>>
对Gartner发布2017年十大技术趋势的分析
查看>>
宜城运用大数据严查惠民政策落实问题
查看>>
智能语音推动物联网应用落地
查看>>
Java 8的6个问题
查看>>
国家能源局亮配额制家底:弃光或缓解?
查看>>
Qt之高级网络操作(HTTP/FTP快速上手)
查看>>
《Hadoop集群与安全》一1.1 选择Hadoop集群硬件
查看>>
Debian 考虑重新加入 FFmpeg
查看>>
《淘宝店铺 大数据营销+SEO+爆款打造 一册通》一一1.4 淘宝店铺转化率优化
查看>>
《技术的潜能:商业颠覆、创新与执行》一一1.4基因技术
查看>>
《设计工作室生存手册》—第1章1.5节设计师的工作要有系统
查看>>