`
gaozzsoft
  • 浏览: 431135 次
  • 性别: 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  
谢谢!!

相关推荐

    Sql Server导出数据 INSERT 脚本

    可以将数据库中的数据导出insert into脚本, sql server2008以上版本已经自带导出数据库数据成insert脚本功能,该工具针对2005以下版本.使用时先选择数据库服务器地址,在右侧选择Sql Server login,输入数据库账号...

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

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

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

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

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

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

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

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

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

    此工具可以将SQL Server表数据导出成Insert语句。SQL Server的导入导出功能可以导出创建数据库各对象的脚本,却不提供导出目标表的现有数据为Insert语句的功能,此工具可以将SQL Server表数据导出成Insert语句。

    SQLServer导出带数据的脚本

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

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

    6. **PowerShell**:另一种方法是使用PowerShell,它提供了丰富的SQL Server模块,可以调用SQL命令行工具(如sqlcmd或bcp)来导出数据,然后通过PowerShell脚本控制Word文档的操作。 7. **Third-party Tools**:...

    DB2数据库自动导出数据INSERT SQL脚本工具

    "DB2数据库自动导出数据INSERT SQL脚本工具"就是针对这一需求而设计的实用工具,它能够帮助DB2数据库管理员高效、自动化地生成用于插入数据的SQL脚本。 该工具的核心功能在于自动化生成INSERT语句,这些语句可以被...

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

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

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

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

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

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

    SQL SERVER 将select数据生成insert语句

    总结来说,SQL Server提供了`SELECT INTO`和`INSERT INTO...SELECT`两种语句用于数据迁移。而"SelectInsertTable"这样的工具进一步简化了这一过程,使得生成和执行`INSERT`语句更为便捷。在进行数据同步或备份时,...

    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 2005导出sql文件工具

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

    数据导出为Insert 脚本

    总之,了解如何在MS SQL SERVER中导出数据为Insert脚本对于数据库管理员和开发人员至关重要,它可以帮助进行数据备份、迁移和测试环境的准备。同时,自定义工具如压缩包中的应用程序,可以提高工作效率,特别是在...

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

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

Global site tag (gtag.js) - Google Analytics