SQL Server 将表数据生成Insert脚本 比较好用的生成插入语句的SQL脚本
2022-11-12 09:55:21
内容摘要
这篇文章主要为大家详细介绍了SQL Server 将表数据生成Insert脚本 比较好用的生成插入语句的SQL脚本,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做
文章正文
这篇文章主要为大家详细介绍了SQL Server 将表数据生成Insert脚本 比较好用的生成插入语句的SQL脚本,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <code>set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: 华岭 -- Create date : 2008-10-28 -- Description: 将表数据生成Insert脚本 -- Demo : exec pCreateInsertScript 'BexmCodeType' , 'dictypeid = 61' -- ============================================= 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 select @sqlstr=@sqlstr+left(@sqlstr2,len(@sqlstr2)-1)+ ') ' +left(@sqlstr1,len(@sqlstr1)-3)+ ')' ' from ' +@tablename + ' where 1=1 and ' + isnull(@con, '' ) print @sqlstr exec ( @sqlstr) set nocount off end </code> |
注:关于SQL Server 将表数据生成Insert脚本 比较好用的生成插入语句的SQL脚本的内容就先介绍到这里,更多相关文章的可以留意
代码注释