通常情况下,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,输入数据库账号...
SQL SERVER:把表里的数据导出成为INSERT INTO脚本的存储过程
sqlserver表数据生成insertsql脚本(导出成insertsql脚本).pdf
此工具可以将SQL Server表数据导出成Insert语句。SQL Server的导入导出功能可以导出创建数据库各对象的脚本,却不提供导出目标表的现有数据为Insert语句的功能,此工具可以将SQL Server表数据导出成Insert语句。
SQL Server表数据导出成Insert语句的工具
从SQLSERVER数据库中导出记录生成insert into 语句
SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具SQL SERVER数据导出工具
易写的从SQL SERVER 中导出image 类型文件到本地
C# SQL SERVER 脚本导出导入 ; SQL SERVER 导出;SQL SERVER 导入;SQL SERVER 数据库 导出;SQL SERVER 数据库 导入; 实现功能 和SQL Server 2014 Management Studio 里面的生成脚本相似 介绍地址:...
SQL SERVER 脚本生成工具,SQL SERVER 数据导出工具,导出数据,支持where条件筛选数据!
SQLServer导出带数据的脚本
请看下面的操作图解。 1.使用Sql Server Management Studio 2008 连接数据库。 2.选中要导出数据的数据库节点,点鼠标右键,在菜单中...从SQL SERVER 2008开始,我们就可以很方便的导出数据脚本,而无需再借助存储过
SQL Server的导入导出功能可以导出创建数据库各对象的脚本,却不提供导出目标表的现有数据为Insert语句的功能,网上也有此类存储过程,但要运行还得给客户数据库上create它,昨天兴致突来,写了一个工具ExpertSQL,...
读取SQLSERVER数据库中的用户表,把表中的用户数据导出为Insert语句。
sqlserver 导出表及字段说明脚本.rar
将sqlserver数据表中的图片导出到本地硬盘上
如果是在SQL Server数据库之间进行数据导入导出时,并且不需要对数据进行复杂的检验,最好使用Transact-SQL方法进行处理,因为在SQL Server数据库之间进行数据操作时,SQL是非常快的。当然,如果要进行复杂的操作,如...
把msSqlServer 中的数据导出成 insert into语句
SQLserver 表导出SQL脚本的工具
DB2数据库自动导出数据INSERT SQL脚本工具