实现将SQLServer表里的数据导出为insert脚本
发布时间:2020-12-12 13:30:34 所属栏目:MsSql教程 来源:网络整理
导读:一数据库--任务--生成脚本 二:通常情况下,SQL Server里面的生成SQL脚本,只会包含数据库及表的字段结构,而不会包含表的数据,也就是SQL脚本里面只有Create database,Create table 这样的语句,没有insert into。 因为SQL Server并不包含这个功能,只能靠
一数据库-->任务-->生成脚本
二:通常情况下,SQL Server里面的生成SQL脚本,只会包含数据库及表的字段结构,而不会包含表的数据,也就是SQL脚本里面只有Create database,Create table 这样的语句,没有insert into。 因为SQL Server并不包含这个功能,只能靠第三方的代码了。 以下存储过程可以实现: @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 使用方法:? 另外可以利用第三方工具,导出数据可以用powerbuilder。在database painter里面,用SQL选出,或者直接打开表,点击生成的list datawindow,然后在菜单file->save rows as->选择SQL,那么生成的SQL语句就包括建表和insert数据的SQL了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |