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

SQL Server里面如何导出包含数据的SQL脚本

 
阅读更多

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

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

以下存储过程可以实现:

CREATEPROCEDUREdbo.UspOutputData
@tablenamesysname
AS
declare@columnvarchar(1000)
declare@columndatavarchar(1000)
declare@sqlvarchar(4000)
declare@xtypetinyint
declare@namesysname
declare@objectIdint
declare@objectnamesysname
declare@identint

setnocounton
set@objectId=object_id(@tablename)

if@objectIdisnull--判断对象是否存在
begin
print'Theobjectnotexists'
return
end
set@objectname=rtrim(object_name(@objectId))

if@objectnameisnullorcharindex(@objectname,@tablename)=0--此判断不严密
begin
print'objectnotincurrentdatabase'
return
end

ifOBJECTPROPERTY(@objectId,'IsTable')<>1--判断对象是否是table
begin
print'Theobjectisnottable'
return
end

select@ident=status&0x80fromsyscolumnswhereid=@objectidandstatus&0x80=0x80

if@identisnotnull
print'SETIDENTITY_INSERT'+@TableName+'ON'

declaresyscolumns_cursorcursor

forselectc.name,c.xtypefromsyscolumnscwherec.id=@objectidorderbyc.colid

opensyscolumns_cursor
set@column=''
set@columndata=''
fetchnextfromsyscolumns_cursorinto@name,@xtype

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

begin
set@column=@column+casewhenlen(@column)=0then''else','end+@name

set@columndata=@columndata+casewhenlen(@columndata)=0then''else','','','
end

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

end

end

fetchnextfromsyscolumns_cursorinto@name,@xtype

end

closesyscolumns_cursor
deallocatesyscolumns_cursor

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

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

if@identisnotnull
print'SETIDENTITY_INSERT'+@TableName+'OFF'

GO

使用方法:

exec UspOutputData 你的表名

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

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

分享到:
评论

相关推荐

    SQLServer导出带数据的脚本

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

    Sql Server导出数据 INSERT 脚本

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

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

    SQL Server是一种强大的关系数据库管理系统,提供了多种方式来生成INSERT SQL脚本,以便将数据导出到其他数据库或系统中。在本文中,我们将介绍如何使用SQL Server 2008中文版生成INSERT SQL脚本。 生成INSERT SQL...

    SQL Server 脚本导出器

    1. 连接:连接到包含需要导出数据的SQL Server实例。 2. 选择对象:选择要导出的数据库和表。 3. 配置选项:设置导出参数,如是否包含触发器、索引、约束等,以及数据格式化选项。 4. 生成脚本:点击导出,工具会...

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

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

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

    这个工具的主要功能是生成数据库对象的SQL脚本,包括表、视图、存储过程、触发器、索引等,这样就可以将这些对象的定义保存为文本文件,方便在其他环境中重新创建或恢复。 首先,让我们详细了解一下SQL Server 2000...

    SQLserver 2008将数据导出到Sql脚本文件的方法

    下图是最后生成的Sql脚本: 注意:这里一定要使用Sql Server Management Studio 2008,其它版本不行。 SQL Server 2008将数据导出为脚本 从SQL SERVER 2008开始,我们就可以很方便的导出数据脚本,而无需再借助...

    SQLSERVER脚本导出导入.zip

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

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

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

    SQLserver 表导出SQL脚本的工具

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

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

    针对这个需求,存在一种名为“SQLServer数据库表中数据导出成SQL语句工具”的实用程序,它能够帮助我们高效地完成这项任务。这个工具通常以MHT(Multi-Part/Related)格式提供,这是一种单一文件Web页面存储格式,...

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

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

    sqlserver图片导出工具

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

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

    在SQL Server中,将数据导出为SQL脚本是一项常用的操作,这有助于备份数据库、迁移数据或在不同的环境中重新创建数据。通常,SQL Server Management Studio (SSMS) 提供的功能仅能导出数据库架构,包括表结构、索引...

    SQL Server 数据库脚本导出器 v2.0.rar

    综上所述,这个工具 "SQL Server 数据库脚本导出器 v2.0" 旨在提供一个增强的解决方案,帮助用户从SQL Server数据库中导出更全面的脚本和数据,它可能包含额外的功能,如自定义脚本选项、优化的数据导出策略等。...

    sql server 2005导出sql文件工具

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

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

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

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

    这将生成一个SQL脚本文件,包含了创建该表的DDL(Data Definition Language)语句。 - T-SQL命令:可以使用`sp_helptext`系统存储过程查看表的定义,但此方法通常用于查看,不便于导出。 2. **导出数据:** - ...

    SQL Server 数据库脚本导出器.rar

    SQL Server数据库脚本导出器是一款专为Microsoft SQL Server设计的实用工具,它允许用户方便地将数据库结构、数据以及对象脚本化为文本文件,以便于备份、迁移或者在不同环境之间同步数据库。这个工具对于数据库管理...

    为SQL server 2000数据生成脚本

    3. 文件名“Ms Sql 数据记录脚本-导出工具 2.0”可能是一个专门用于SQL Server 2000数据导出的第三方工具。这种工具通常提供自动化脚本生成、批量处理等功能,可能比SSMS更高效,尤其对于大量数据和复杂数据库结构的...

Global site tag (gtag.js) - Google Analytics