通常情况下,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
分享到:
相关推荐
可以将数据库中的数据导出insert into脚本, sql server2008以上版本已经自带导出数据库数据成insert脚本功能,该工具针对2005以下版本.使用时先选择数据库服务器地址,在右侧选择Sql Server login,输入数据库账号...
同时,脚本还将包括INSERT INTO语句,以便将数据插入到目标表中。 INSERT SQL脚本的应用场景 生成INSERT SQL脚本的应用场景非常广泛,例如: * 数据迁移:当我们需要将数据从一个数据库迁移到另一个数据库时,...
根据提供的文件信息,我们可以构建一个详细的SQL Server存储过程来实现将表中的数据转换为`INSERT INTO`脚本的功能。此存储过程将适用于多种数据类型,并能够动态生成插入语句,以便用户可以方便地导出数据作为脚本...
从SQLSERVER数据库中导出记录生成insert into 语句
2. **SQL Server的数据导出方式**:SQL Server提供了多种数据导出方式,如SQL Server Management Studio (SSMS) 的“任务”->“导出数据”,以及bcp命令行工具。这些方法通常用于导出整个数据库或表的数据,但不直接...
此工具可以将SQL Server表数据导出成Insert语句。SQL Server的导入导出功能可以导出创建数据库各对象的脚本,却不提供导出目标表的现有数据为Insert语句的功能,此工具可以将SQL Server表数据导出成Insert语句。
SQL Server 导出带数据的脚本 SQL Server 是一个功能强大的关系数据库管理系统,它提供了多种方式来导出数据库结构和数据。今天,我们将探讨如何使用 SQL Server Management Studio (SSMS) 导出带数据的脚本。 一...
请看下面的操作图解。 1.使用Sql Server Management Studio 2008 连接数据库。 2.选中要导出数据的数据库节点,点鼠标右键,在菜单中...从SQL SERVER 2008开始,我们就可以很方便的导出数据脚本,而无需再借助存储过
在SQL Server数据库中,"image"数据类型曾被用来存储图像和其他二进制大对象(BLOB)数据,如照片、文档等。然而,自SQL Server 2008开始,"image"类型已被弃用,取而代之的是"varbinary(max)",它能够更有效地处理...
除了这个特定的MHT格式工具,SQL Server还提供了其他的内置功能和第三方软件,例如SQL Server Management Studio(SSMS)的“任务”->“生成脚本”,或者使用bcp命令行工具,它们也可以完成类似的数据导出工作。...
这个压缩包"sqlserver 导出表及字段说明脚本.rar"包含了一个名为"sqlserver 导出表及字段说明脚本.sql"的文件,这通常是一个用于生成SQL语句的脚本,用于描述数据库中的表结构以及各字段的详细信息。以下是对这个...
通常,SQL Server Management Studio (SSMS) 提供的功能仅能导出数据库架构,包括表结构、索引、视图、存储过程等,但不直接包含数据。要导出数据表的内容,确实需要手动编写SQL语句或者使用特定的存储过程。本文将...
DTS包可以设计为包含一系列数据流任务,包括数据清洗、转换、验证等,使得数据导入导出过程更为灵活和可控。当需要进行高级的数据处理,如数据验证、转换或清洗时,DTS是最佳选项。 综上所述,选择哪种方法取决于...
总结来说,SQL Server提供了`SELECT INTO`和`INSERT INTO...SELECT`两种语句用于数据迁移。而"SelectInsertTable"这样的工具进一步简化了这一过程,使得生成和执行`INSERT`语句更为便捷。在进行数据同步或备份时,...
SQL Server提供了多种方法来实现这一目标,包括使用T-SQL语句、SQL Server Management Studio (SSMS)以及第三方工具。本文将详细探讨如何使用SQL Server脚本功能来导出表结构和数据。 首先,我们要理解SQL Server中...
在SQL Server数据库管理中,有时我们需要将数据表的结构或数据导出为SQL脚本,以便备份、迁移或在其他环境中重建。SQL Server提供了一些内置工具和方法来实现这一目标,这些工具通常对于数据库管理员和开发人员来说...
C# SQL SERVER 脚本导出导入 ; SQL SERVER 导出;SQL SERVER 导入;SQL SERVER 数据库 导出;SQL SERVER 数据库 导入; 实现功能 和SQL Server 2014 Management Studio 里面的生成脚本相似 介绍地址:...
市场上也有许多数据库管理工具,如SSMS (SQL Server Management Studio) 和 Red-Gate SQL Compare,它们提供了导出数据为INSERT语句的功能,可以方便地处理这种情况。 在实际操作中,务必注意数据的敏感性和权限...
这个工具允许用户将SQL Server数据库导出为SQL脚本文件,包含了创建表、视图、存储过程、触发器、索引等数据库对象的SQL语句,以及填充数据的INSERT语句。这样,你可以将这些脚本应用到其他SQL Server实例上,以复制...
总之,了解如何在MS SQL SERVER中导出数据为Insert脚本对于数据库管理员和开发人员至关重要,它可以帮助进行数据备份、迁移和测试环境的准备。同时,自定义工具如压缩包中的应用程序,可以提高工作效率,特别是在...