`
gaozzsoft
  • 浏览: 424736 次
  • 性别: 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 2008将数据导出到Sql脚本文件的方法

    请看下面的操作图解。 1.使用Sql Server Management Studio 2008 连接数据库。 2.选中要导出数据的数据库节点,点鼠标右键,在菜单中...从SQL SERVER 2008开始,我们就可以很方便的导出数据脚本,而无需再借助存储过

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

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

    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'' '(传...

    SQL SERVER脚本表结构和数据导出工具

    SQL Server提供了多种方法来实现这一目标,包括使用T-SQL语句、SQL Server Management Studio (SSMS)以及第三方工具。本文将详细探讨如何使用SQL Server脚本功能来导出表结构和数据。 首先,我们要理解SQL Server中...

    SQLserver 表导出SQL脚本的工具

    在SQL Server数据库管理中,有时我们需要将数据表的结构或数据导出为SQL脚本,以便备份、迁移或在其他环境中重建。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 类型文件到本地

    sql server 2005导出sql文件工具

    这个工具允许用户将SQL Server数据库导出为SQL脚本文件,包含了创建表、视图、存储过程、触发器、索引等数据库对象的SQL语句,以及填充数据的INSERT语句。这样,你可以将这些脚本应用到其他SQL Server实例上,以复制...

Global site tag (gtag.js) - Google Analytics