zoukankan      html  css  js  c++  java
  • [转]SqlServer表数据导成Insert语句

    数据库中存在TEST表,建表语句如下:

    create table test(
    id int not null constraint pk_test primary key,
    name nvarchar(100) null,
    description nvarchar(200) null
    )

    生成insert 语句的SQL如下:

    set nocount on
    select 'insert into test(id, name, description) values(''' + convert(varchar(10), id) + ''', ''' + name + ''',''' +description + ''')' + char(13) + char(10)
    from test --可以加过滤条件
    set nocount off

    第二种,利用存储过程:

    创建:
    create     proc   spGenInsertSQL  
    @TableName   as   varchar(100)  
    as  
    --declare   @TableName   varchar(100)  
    --set   @TableName   =   'orders'  
    --set   @TableName   =   'eeducation'  
    DECLARE   xCursor   CURSOR   FOR  
    SELECT   name,xusertype  
    FROM   syscolumns  
    WHERE   (id   =   OBJECT_ID(@TableName) )
    declare   @F1   varchar(100)  
    declare   @F2   integer  
    declare   @SQL   varchar(8000)  
    set   @sql   ='SELECT   ''INSERT   INTO   '   +   @TableName   +   '   VALUES('''  
    OPEN   xCursor  
    FETCH   xCursor   into   @F1,@F2  
    WHILE   @@FETCH_STATUS   =   0  
    BEGIN  
              set   @sql   =@sql   +  
                                  +   case   when   @F2   IN   (35,58,99,167,175,231,239,61)   then   '   +   case   when   '   +   @F1   +   '   IS   NULL   then   ''''   else   ''''''''   end   +   '     else   '+'   end  
                                  +   'replace(ISNULL(cast('   +   @F1   +   '   as   varchar(8000)),''NULL''),'''''''','''''''''''')'    
                                  +   case   when   @F2   IN   (35,58,99,167,175,231,239,61)   then   '   +   case   when   '   +   @F1   +   '   IS   NULL   then   ''''   else   ''''''''   end   +   '     else   '+'   end  
                                  +   char(13)   +   ''','''    
              FETCH   NEXT   FROM   xCursor   into   @F1,@F2  
    END  
    CLOSE   xCursor  
    DEALLOCATE   xCursor  
    set   @sql   =   left(@sql,len(@sql)   -   5)   +   '   +   '')''   FROM   '   +   @TableName
    exec   (@sql)   
    go

    执行:

    exec spGenInsertSQL tablename

    删除:
    drop proc spGenInsertSQL

  • 相关阅读:
    数组中最大和的子数组
    数据结构与算法面试题80道
    fcntl获取和修改文件打开状态标志
    dup等复制文件描述符函数
    截断文件函数truncate和ftruncate
    浅析
    五个Taurus垃圾回收compactor优化方案,减少系统资源占用
    如何用交互式特征工程工具进行数据分析处理
    【华为云技术分享】解密如何使用昇腾AI计算解决方案构建业务引擎
    Scrum Master教你四招,瓦解团队内部刺头
  • 原文地址:https://www.cnblogs.com/xjyggd/p/1515220.html
Copyright © 2011-2022 走看看