zoukankan      html  css  js  c++  java
  • SQL Server 2005导出表中数据的SQL脚本形式(即INSERT语句)

     1 CREATE   proc spGenInsertSQL (@tablename varchar(256))
     2 as
     3 begin
     4 declare @sql varchar(8000)
     5 declare @sqlValues varchar(8000)
     6 set @sql =' ('
     7 set @sqlValues = 'values (''+'
     8 select @sqlValues = @sqlValues + cols + ' + '','' + ' ,@sql = @sql + '[' + name + '],'
     9 from
    10       (select case
    11                 when xtype in (48,52,56,59,60,62,104,106,108,122,127)       
    12 
    13                      then 'case when '+ name +' is null then ''NULL'' else ' + 'cast('+ name + ' as varchar)'+' end'
    14 
    15                 when xtype in (58,61)
    16 
    17                      then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'cast('+ name +' as varchar)'+ '+'''''''''+' end'
    18 
    19                when xtype in (167)
    20 
    21                      then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'replace('+ name+','''''''','''''''''''')' + '+'''''''''+' end'
    22 
    23                 when xtype in (231)
    24 
    25                      then 'case when '+ name +' is null then ''NULL'' else '+'''N'''''' + ' + 'replace('+ name+','''''''','''''''''''')' + '+'''''''''+' end'
    26 
    27                 when xtype in (175)
    28 
    29                      then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'cast(replace('+ name+','''''''','''''''''''') as Char(' + cast(length as varchar) + '))+'''''''''+' end'
    30 
    31                 when xtype in (239)
    32 
    33                      then 'case when '+ name +' is null then ''NULL'' else '+'''N'''''' + ' + 'cast(replace('+ name+','''''''','''''''''''') as Char(' + cast(length as varchar) + '))+'''''''''+' end'
    34 
    35                 else '''NULL'''
    36 
    37               end as Cols,name
    38 
    39          from syscolumns 
    40 
    41         where id = object_id(@tablename)
    42 
    43       ) T
    44 set @sql ='select ''INSERT INTO ['+ @tablename + ']' + left(@sql,len(@sql)-1)+') ' + left(@sqlValues,len(@sqlValues)-4) + ')'' from '+@tablename
    45 print @sql
    46 exec (@sql)
    47 end
    48 GO

    使用方法: exec spGenInsertSQL '表名'

  • 相关阅读:
    Warning! PATH is not properly set up...
    用rvm切换ruby
    Mac下多版本JDK安装
    iOS开发 密码里面含有特殊字符如何处理传给后端
    Cornerstone版本回退160013错误
    iOS 11 Xcode9 tableview点击cell上的按钮cell自动往上跳动
    iOS 获取全部字体的Fontfamily和FontName
    iOS WKWebView 点击超链接跳转至Safari
    iOS 11在window上加视图不显示
    Java并发(2)
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2796441.html
Copyright © 2011-2022 走看看