zoukankan      html  css  js  c++  java
  • 导出表中数据为insert语句

    alter procedure pGetInsertSQL (@tablename varchar(256))
    ---WITH ENCRYPTION
    as
    begin
    ---得到表中的SQL
     -- declare @tablename varchar(256)
     -- set @tablename = 'Design_DBPageStruct'
     --Create Table SQLtmp
     --(
     --sql varchar(4000)
     --)
    ---Delete  from SQLtmp
    
    if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SQLtmp]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    Create Table SQLtmp
    (
    sql varchar(4000)
    )
    declare @sql varchar(4000)
    declare @sqlValues varchar(4000)
    set @sql =' ('
    set @sqlValues = 'values (''+'
    select @sqlValues = @sqlValues + cols + ' + '','' + ' ,@sql = @sql + '[' + name + '],'
    from
    (select case
    when xtype in (48,52,56,59,60,62,104,106,108,122,127)
    then 'case when '+ name +' is null then ''NULL'' else ' + 'cast('+ name + ' as varchar)'+' end'
    when xtype in (58,61)
    then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'cast('+ name +' as varchar)'+ '+'''''''''+' end'
    when xtype in (167)
    then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'replace('+ name+','''''''','''''''''''')' + '+'''''''''+' end'
    when xtype in (231)
    then 'case when '+ name +' is null then ''NULL'' else '+'''N'''''' + ' + 'replace('+ name+','''''''','''''''''''')' + '+'''''''''+' end'
    when xtype in (175)
    then 'case when '+ name +' is null then ''NULL'' else '+''''''''' + ' + 'cast(replace('+ name+','''''''','''''''''''') as Char(' + cast(length as varchar)  + '))+'''''''''+' end'
    when xtype in (239)
    then 'case when '+ name +' is null then ''NULL'' else '+'''N'''''' + ' + 'cast(replace('+ name+','''''''','''''''''''') as Char(' + cast(length as varchar)  + '))+'''''''''+' end'
    else '''NULL'''
    end as Cols,name
    from syscolumns
    where id = object_id(@tablename)
    ) T
    set @sql ='insert into SQLtmp (sql) select ''INSERT INTO ['+ @tablename + ']' + left(@sql,len(@sql)-1)+') ' + left(@sqlValues,len(@sqlValues)-4) + ');'' from '+@tablename + '  '
    --  print @sql
      --exec (@sql)
    Select sql from SQLtmp
    ---Select sql from SQLtmp  FOR XML AUTO
    end
    go
  • 相关阅读:
    递归判断多维数组中对象是否有值
    Web前端开发 --》 如何实现页面同时在移动端和pc端的兼容问题
    使用 yield 减少内存消耗
    git 中断 merge
    laravel 命令行测试 Uncaught ReflectionException: Class config does not exist
    laravel 单元测试设置模拟时间
    laravel 单元测试设置模拟时间
    php Mockery 错误 "call_user_func_array() expects parameter 1 to be a valid callback, class 'MockeryExpectation' does not have a method"
    git 创建空提交
    RabbitMQ 客户端开发向导
  • 原文地址:https://www.cnblogs.com/fumj/p/2555381.html
Copyright © 2011-2022 走看看