`
webcode
  • 浏览: 6031710 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Microsoft SqlServer生成表数据Insert语句

阅读更多

一直为SqlServer生成表数据Insert语句烦恼,微软的这个方面真没Oracle的PL/SQL做的好.今天在网上找个存储过程.感觉挺方便的.所以珍藏.以备后用.

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER proc [dbo].[proc_insert] (@tablename varchar(256))
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 =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
-- print @sqlstr
exec( @sqlstr)
set nocount off
end

http://www.corange.cn/archives/2008/10/2089.html

分享到:
评论

相关推荐

    SQLServer导出为Insert语句

    5. **自动生成Insert语句**:为了批量生成Insert语句,我们需要遍历用户表中的所有记录,并为每一行生成对应的Insert语句。这可以通过编写SQL查询,或者使用编程语言(如C++结合MFC)实现。程序可能首先获取表结构,...

    c# 导出MSSQL表数据 Insert语句

    本文将深入探讨如何在C#中导出MSSQL表的数据并生成Insert语句,这对于数据迁移、备份或测试环境的搭建都非常有用。 首先,要实现这个功能,我们需要对SQL Server的ADO.NET库有基本的了解。ADO.NET是微软提供的一个...

    SQL SERVER 数据自动生成SQL语句

    4. **生成脚本**:所有INSERT语句会被整合成一个大的SQL脚本,可以一次性执行,将所有数据导入新数据库。 5. **优化与执行**:为了提高效率,可能还需要对生成的脚本进行优化,例如批量插入,减少事务次数,以提高...

    SQL 导出数据 insert 语句

    在SQL Server中,虽然没有直接的内置功能来批量生成INSERT语句,但可以通过SQL查询或其他工具(如SQL Server Management Studio - SSMS)配合T-SQL脚本来实现这一目标。 例如,你可以编写一个存储过程或者使用SSMS...

    一个生成SQLServer2000数据库数据SQL语句的好工具与源码SQLUtility-bin

    SQLUtility工具的核心功能可能是生成INSERT语句,这些语句可以用来重建数据库中的所有数据。这对于备份或在新的SQL Server实例上恢复数据至关重要。源码可能包含如何连接到数据库、获取表结构、遍历数据并生成相应的...

    SQL Server 表Insert脚本生成工具

    通过它,用户可以快速、方便地生成特定表的INSERT语句脚本,这些脚本可以随后在目标数据库上执行,以插入相同的数据。 在数据库管理中,INSERT语句是用于向表格添加新记录的基本SQL命令。通常,手动编写大量INSERT...

    根据SQLServer数据表生成C#实体类。生成数据库模型.zip

    本压缩包"根据SQLServer数据表生成C#实体类"提供了相关的工具和源码,旨在帮助开发者快速创建与数据库表结构相对应的C#类。SQLHelper是一个常见的辅助类,用于简化SQL操作,避免了大量的硬编码SQL语句,使得数据库...

    MFC 源码 VC++ sqlserver数据库访问 insert update

    3. 创建`CDaoRecordset`对象,并指定要操作的表和SQL语句。 4. 对于插入操作,通常会先打开`CDaoRecordset`,然后调用`AddNew`方法,填充新记录的数据,最后调用`Update`方法将新记录提交到数据库。 5. 对于更新操作...

    数据库表导出insert语句工具

    在压缩包文件名称列表中,"第九软件网注释.txt"可能包含关于如何使用特定工具或服务的说明,而"MSSQL表数据导出成Insert语句的工具"则暗示了该工具可能是针对Microsoft SQL Server的,尽管标签提到了MySQL。...

    个人用C#实现的SqlServer数据脚本生成器(可达到数据有则update,无则insert)

    用户可能需要提供源数据或者数据表信息,程序会分析这些数据,生成相应的SQL脚本,以便于在目标数据库上进行数据的插入或更新操作,从而实现数据的一致性。这样的工具对于数据管理和迁移工作尤其有用,可以避免手动...

    使用SQL Server从表数据生成插入或更新语句

    总的来说,SQL Server提供了丰富的语言特性和工具,使得从表数据生成插入或更新语句成为可能。无论是手动编写T-SQL脚本,还是使用第三方工具,都可以有效地处理数据迁移和备份任务。理解并熟练运用这些方法,对提升...

    SQL SERVER 数据提取器

    "SQL SERVER 数据提取器"会根据表结构自动生成对应的INSERT语句,这样用户就可以在其他环境或者数据库中直接运行这些语句,快速地复现或导入相同的数据。 此外,这款工具可能还具备一些其他高级功能,例如数据预览...

    SQL Server宝典SQL Server语句大全

    《SQL Server宝典SQL Server语句大全》涵盖了SQL Server数据库管理系统中的各种核心概念、操作语法以及高级技巧。作为一款广泛使用的数据库系统,SQL Server提供了强大的数据管理能力,支持复杂的查询、事务处理、...

    SQL SERVER自动导出Word数据库文档

    在这个工具中,我们可以编写Transact-SQL语句来执行各种数据库操作,包括数据导出。 2. **自动导出**:这个特性允许用户设置自动化脚本或任务,定时导出数据库的结构、数据或其他相关信息到Word文档中。这通常通过...

    SQL SERVER 语句大全.rar

    SQL Server 是一款由微软公司开发的关系型数据库管理系统(RDBMS),广泛应用于企业级数据存储、管理和分析。这个"SQL SERVER 语句大全.rar"压缩包文件很可能包含了关于SQL Server中各种常用查询语句、数据操作、...

    C#-SqlServer代码生成器

    【C#-SqlServer代码生成器】是一个专门针对Microsoft SQL Server数据库设计的代码生成工具,它旨在简化开发过程中与数据库交互的代码编写工作。利用C#编程语言的强大功能,该工具能够自动生成高效的数据库操作代码,...

    把msSqlServer 中的数据导出成 insert into语句

    将Microsoft SQL Server(简称MS SQL Server)中的数据导出为SQL插入语句是一个常见的数据库管理操作,主要用于数据备份、迁移或脚本化目的。在给定的文件信息中,一个存储过程`dbo.UspOutputData`被设计用于实现这...

    SQLSERVER脚本生成器

    同时,它还能生成INSERT INTO语句,将表中的所有数据转化为SQL插入语句,以便在新的环境中重建同样的数据集。 4. **数据恢复**: 当数据库出现故障或者需要回滚到某个特定状态时,已生成的SQL脚本可以用于重新创建和...

    SQL2005以下输出结果直接生成insert into工具合集

    - **从SQLSERVER表中导出记录生成insert into 脚本的办法(1).SQL**:这是一个SQL脚本,它演示了如何生成INSERT INTO语句来导出特定表的记录。用户可以运行这个脚本作为参考,了解如何编写自己的脚本来实现相同的功能...

Global site tag (gtag.js) - Google Analytics