SQL Server 2005导出表中数据的SQL脚本形式

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
CREATE    proc sp_GenInsertSQL ( @tablename  varchar( 256))
as
begin
declare  @sql  varchar( 8000)
declare  @sqlValues  varchar( 8000)
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  = ' select  '' INSERT INTO [ ' +  @tablename  +  ' ] '  +  left( @sql, len( @sql) - 1) + ' '  +  left( @sqlValues, len( @sqlValues) - 4+  ' ) ''  from  ' + @tablename
print  @sql
exec ( @sql)
end
GO


然后执行:
exec sp_GenInsertSQL  ' 表名 '
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
4天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标属性:数据的“导航仪”与“仪表盘”
【4月更文挑战第19天】Oracle PL/SQL游标属性如同车辆的导航仪和仪表盘,提供丰富信息和控制。 `%FOUND`和`%NOTFOUND`指示数据读取状态,`%ROWCOUNT`记录处理行数,`%ISOPEN`显示游标状态。还有`%BULK_ROWCOUNT`和`%BULK_EXCEPTIONS`增强处理灵活性。通过实例展示了如何在数据处理中利用这些属性监控和控制流程,提高效率和准确性。掌握游标属性是提升数据处理能力的关键。
|
4天前
|
SQL Oracle 安全
Oracle的PL/SQL循环语句:数据的“旋转木马”与“无限之旅”
【4月更文挑战第19天】Oracle PL/SQL中的循环语句(LOOP、EXIT WHEN、FOR、WHILE)是处理数据的关键工具,用于批量操作、报表生成和复杂业务逻辑。LOOP提供无限循环,可通过EXIT WHEN设定退出条件;FOR循环适用于固定次数迭代,WHILE循环基于条件判断执行。有效使用循环能提高效率,但需注意避免无限循环和优化大数据处理性能。掌握循环语句,将使数据处理更加高效和便捷。
|
4天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL条件控制:数据的“红绿灯”与“分岔路”
【4月更文挑战第19天】在Oracle PL/SQL中,IF语句与CASE语句扮演着数据流程控制的关键角色。IF语句如红绿灯,依据条件决定程序执行路径;ELSE和ELSIF提供多分支逻辑。CASE语句则是分岔路,按表达式值选择执行路径。这些条件控制语句在数据验证、错误处理和业务逻辑中不可或缺,通过巧妙运用能实现高效程序逻辑,保障数据正确流转,支持企业业务发展。理解并熟练掌握这些语句的使用是成为合格数据管理员的重要一环。
|
4天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL表达式:数据的魔法公式
【4月更文挑战第19天】探索Oracle PL/SQL表达式,体验数据的魔法公式。表达式结合常量、变量、运算符和函数,用于数据运算与转换。算术运算符处理数值计算,比较运算符执行数据比较,内置函数如TO_CHAR、ROUND和SUBSTR提供多样化操作。条件表达式如CASE和NULLIF实现灵活逻辑判断。广泛应用于SQL查询和PL/SQL程序,助你驾驭数据,揭示其背后的规律与秘密,成为数据魔法师。
|
12天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
51 10
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
96 0
|
1月前
|
SQL 数据库
sql server中创建数据库和表的语法
sql server中创建数据库和表的语法
18 1
|
1月前
|
SQL 安全 数据库
SQLServer 实现数据库表复制到另一个数据库_kaic
SQLServer 实现数据库表复制到另一个数据库_kaic