`
380071587
  • 浏览: 479919 次
  • 性别: 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) 导出带数据的脚本。 一...

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

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

    Sql Server导出数据 INSERT 脚本

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

    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 里面的生成脚本相似 介绍地址:...

    SQLserver 表导出SQL脚本的工具

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

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

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

    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) 提供的功能仅能导出数据库架构,包括表结构、索引...

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

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

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

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

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

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

    sql server 2005导出sql文件工具

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

    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