微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

实现将SQLServer表里的数据导出为insert脚本


数据库-->任务-->生成脚本



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

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

以下存储过程可以实现:

CREATE   PROCEDURE  dbo.UspoutputData 
@tablename  sysname 
AS  
declare @column varchar ( 1000
@columndata @sql 4000 @xtype tinyint @name @objectId int @objectname @ident  

set  nocount  on @objectId = object_id (

if is null --  判断对象是否存在 
begin print   ' The object not exists ' return end @objectname rtrim ( object_name )) 

  or charindex , ) = 0 此判断不严密  object not in current database OBJECTPROPERTY IsTable < > 1  判断对象是否是table  The object is not table select @ident = status & 0x80 from  syscolumns  where  id @objectid and  status 0x80 not SET IDENTITY_INSERT  ' + @TableName +  ON  syscolumns_cursor  cursor for  c.name,c.xtype   syscolumns c   c.id order by  c.colid 

open  syscolumns_cursor 
@column '' @columndata fetch next into while @@fetch_status >- 2 in 189 34 35 99 98 timestamp不需处理,image,text,ntext,sql_variant 暂时不处理 
case when len then else end then ''  

167 175 ''''''''' + @name ''''''''' varchar,char  231 239 ''' N '''''' nvarchar,nchar  @xtype 61 +convert(char(23),121)+ datetime  58 +convert(char(16),120)+ smalldatetime  36 +convert(char(36),0)">)+ uniqueidentifier  close deallocate  syscolumns_cursor 

@sql set nocount on select  insert  @tablename ) values( as  -- )  from  exec  OFF GO

使用方法: 

exec UspoutputData 你的表名 

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐