`
gaozzsoft
  • 浏览: 424881 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

SQL Server里面如何导出包含(insert into)数据的SQL脚本 (转载ZZ)

阅读更多

 通常情况下,SQL Server里面的生成SQL脚本,只会包含数据库及表的字段结构,而不会包含表的数据,也就是SQL脚本里面只有Create database,Create table 这样的语句,没有insert into。

因为SQL Server并不包含这个功能,只能靠第三方的代码了。

以下存储过程可以实现:

CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar ( 1000 )
declare @columndata varchar ( 1000 )
declare @sql varchar ( 4000 )
declare @xtype tinyint
declare @name sysname
declare @objectId int
declare @objectname sysname
declare @ident int

set nocount on
set @objectId = object_id ( @tablename )

if @objectId is null -- 判断对象是否存在
begin
print ' The object not exists '
return
end
set @objectname = rtrim ( object_name ( @objectId ))

if @objectname is null or charindex ( @objectname , @tablename ) = 0 -- 此判断不严密
begin
print ' object not in current database '
return
end

if OBJECTPROPERTY ( @objectId , ' IsTable ' ) < > 1 -- 判断对象是否是table
begin
print ' The object is not table '
return
end

select @ident = status & 0x80 from syscolumns where id = @objectid and status & 0x80 = 0x80

if @ident is not null
print ' SET IDENTITY_INSERT ' + @TableName + ' ON '

declare syscolumns_cursor cursor

for select c.name,c.xtype from syscolumns c where c.id = @objectid order by c.colid

open syscolumns_cursor
set @column = ''
set @columndata = ''
fetch next from syscolumns_cursor into @name , @xtype

while @@fetch_status < >- 1
begin
if @@fetch_status < >- 2
begin
if @xtype not in ( 189 , 34 , 35 , 99 , 98 ) -- timestamp不需处理,image,text,ntext,sql_variant 暂时不处理

begin
set @column = @column + case when len ( @column ) = 0 then '' else ' , ' end + @name

set @columndata = @columndata + case when len ( @columndata ) = 0 then '' else ' , '' , '' , '
end

+ case when @xtype in ( 167 , 175 ) then ''''''''' + ' + @name + ' + ''''''''' -- varchar,char
when @xtype in ( 231 , 239 ) then ''' N '''''' + ' + @name + ' + ''''''''' -- nvarchar,nchar
when @xtype = 61 then ''''''''' +convert(char(23), ' + @name + ' ,121)+ ''''''''' -- datetime
when @xtype = 58 then ''''''''' +convert(char(16), ' + @name + ' ,120)+ ''''''''' -- smalldatetime
when @xtype = 36 then ''''''''' +convert(char(36), ' + @name + ' )+ ''''''''' -- uniqueidentifier
else @name end

end

end

fetch next from syscolumns_cursor into @name , @xtype

end

close syscolumns_cursor
deallocate syscolumns_cursor

set @sql = ' set nocount on select '' insert ' + @tablename + ' ( ' + @column + ' ) values( '' as '' -- '' , ' + @columndata + ' , '' ) '' from ' + @tablename

print ' -- ' + @sql
exec ( @sql )

if @ident is not null
print ' SET IDENTITY_INSERT ' + @TableName + ' OFF '

GO

使用方法:

exec UspOutputData 你的表名

选择【执行模式】为“以文本显示结果”,然后将运行后的结果存成.sql,加上用SQL Server生成的数据库脚本就可以了。

另外可以利用第三方工具,导出数据可以用powerbuilder。在database painter里面,用SQL选出,或者直接打开表,点击生成的list datawindow,然后在菜单file->save rows as->选择SQL,那么生成的SQL语句就包括建表和insert数据的SQL了。

 

from: http://hi.baidu.com/yk46/blog/item/f31a1ed89191a13633fa1ca6.html

分享到:
评论
1 楼 mj 2012-03-08  
谢谢!!

相关推荐

    sqlserver表数据生成insertsql脚本(导出成insertsql脚本).pdf

    同时,脚本还将包括INSERT INTO语句,以便将数据插入到目标表中。 INSERT SQL脚本的应用场景 生成INSERT SQL脚本的应用场景非常广泛,例如: * 数据迁移:当我们需要将数据从一个数据库迁移到另一个数据库时,...

    SQL SERVER:把表里的数据导出成为INSERT INTO脚本的存储过程

    根据提供的文件信息,我们可以构建一个详细的SQL Server存储过程来实现将表中的数据转换为`INSERT INTO`脚本的功能。此存储过程将适用于多种数据类型,并能够动态生成插入语句,以便用户可以方便地导出数据作为脚本...

    SQLServer导出为Insert语句

    在SQL Server中,可以使用多种工具或T-SQL语句来导出数据,例如`bcp`命令行工具,`SELECT INTO`语句,或者使用SSMS(SQL Server Management Studio)的“任务”&gt;“生成脚本”功能。 4. **Insert语句**:在SQL中,...

    从SQLSERVER数据库中导出记录生成insert into 语句

    从SQLSERVER数据库中导出记录生成insert into 语句

    SQL Server表数据导出成Insert语句的工具

    2. **SQL Server的数据导出方式**:SQL Server提供了多种数据导出方式,如SQL Server Management Studio (SSMS) 的“任务”-&gt;“导出数据”,以及bcp命令行工具。这些方法通常用于导出整个数据库或表的数据,但不直接...

    SQLServer导出带数据的脚本

    SQL Server 导出带数据的脚本 SQL Server 是一个功能强大的关系数据库管理系统,它提供了多种方式来导出数据库结构和数据。今天,我们将探讨如何使用 SQL Server Management Studio (SSMS) 导出带数据的脚本。 一...

    SQL SERVER数据导出工具可以根据WHERE条件导出数据

    SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具

    sql server脚本导出器轻松导出SQL脚本 sql server 2000 备份工具

    SQL Server脚本导出器是数据库管理员在管理SQL Server 2000时的重要工具,它使得数据库的备份和迁移工作变得更为简便。这个工具的主要功能是生成数据库对象的SQL脚本,包括表、视图、存储过程、触发器、索引等,这样...

    SQL 导出数据 insert 语句

    "SQL 导出数据 insert 语句"是指一种技术,它允许我们把数据库中的记录转换为一系列的INSERT语句,这样就可以在需要的时候重新执行这些语句来插入数据。这种做法尤其适用于小型数据集或者作为数据迁移的一种手段。 ...

    sqlserver图片导出工具

    在SQL Server数据库中,"image"数据类型曾被用来存储图像和其他二进制大对象(BLOB)数据,如照片、文档等。然而,自SQL Server 2008开始,"image"类型已被弃用,取而代之的是"varbinary(max)",它能够更有效地处理...

    sqlserver 导出表及字段说明脚本.rar

    这个压缩包"sqlserver 导出表及字段说明脚本.rar"包含了一个名为"sqlserver 导出表及字段说明脚本.sql"的文件,这通常是一个用于生成SQL语句的脚本,用于描述数据库中的表结构以及各字段的详细信息。以下是对这个...

    SQL Server将数据导出SQL脚本的方法

    通常,SQL Server Management Studio (SSMS) 提供的功能仅能导出数据库架构,包括表结构、索引、视图、存储过程等,但不直接包含数据。要导出数据表的内容,确实需要手动编写SQL语句或者使用特定的存储过程。本文将...

    SQL Server中导入导出数据三方法比较

    DTS包可以设计为包含一系列数据流任务,包括数据清洗、转换、验证等,使得数据导入导出过程更为灵活和可控。当需要进行高级的数据处理,如数据验证、转换或清洗时,DTS是最佳选项。 综上所述,选择哪种方法取决于...

    SQLServer数据库表中数据导出成SQL语句工具

    除了这个特定的MHT格式工具,SQL Server还提供了其他的内置功能和第三方软件,例如SQL Server Management Studio(SSMS)的“任务”-&gt;“生成脚本”,或者使用bcp命令行工具,它们也可以完成类似的数据导出工作。...

    SQLServer表数据转化为sql语句(表数据搬运,一键快捷导出为insert语句,方便导入到其它库)

    功能: 根据表名、where条件,生成导出数据的SQL语句。(包含insert语句。结果可一键执行,利于数据导出、导入) 参数: @tableName nvarchar(100) --表名 ,@sqlWhere nvarchar(500) --where条件,如'a=''123'' '(传...

    SQLserver 表导出SQL脚本的工具

    在SQL Server数据库管理中,有时我们需要将数据表的结构或数据导出为SQL脚本,以便备份、迁移或在其他环境中重建。SQL Server提供了一些内置工具和方法来实现这一目标,这些工具通常对于数据库管理员和开发人员来说...

    SQL Server导出数据字典工具

    SQL Server是一款广泛应用...总的来说,"SQL Server导出数据字典工具"是数据库管理员和开发人员的得力助手,它简化了获取和管理SQL Server数据库元数据的过程,提高了工作效率,同时也为数据库的维护和优化提供了便利。

    SQLSERVER脚本导出导入.zip

    C# SQL SERVER 脚本导出导入 ; SQL SERVER 导出;SQL SERVER 导入;SQL SERVER 数据库 导出;SQL SERVER 数据库 导入; 实现功能 和SQL Server 2014 Management Studio 里面的生成脚本相似 介绍地址:...

    将sqlserver表中指定数据转化为insert语句

    市场上也有许多数据库管理工具,如SSMS (SQL Server Management Studio) 和 Red-Gate SQL Compare,它们提供了导出数据为INSERT语句的功能,可以方便地处理这种情况。 在实际操作中,务必注意数据的敏感性和权限...

    SQL SERVER 导出image 类型文件到本地

    易写的从SQL SERVER 中导出image 类型文件到本地

Global site tag (gtag.js) - Google Analytics