专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » sql脚本生成器:将表数据生成SQL脚本的存储过程 »正文

sql脚本生成器:将表数据生成SQL脚本的存储过程

来源: 发布时间:星期六, 2009年2月7日 浏览:0次 评论:0
="t18">作者:zlt982001

  将表数据生成SQL脚本存储过程:

CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(1000)
declare @columndata varchar(1000)
declare @sql varchar(4000)
declare @xtype tiny
declare @name sysname
declare @objectId
declare @objectname sysname
declare @ident

nocount _disibledevent=> @objectId is null -- 判斷對象是否存在
begin
pr 'The object not exists'

end
@objectname=rtrim(object_name(@objectId))

@objectname is null or charindex(@objectname,@tablename)=0 --此判断不严密
begin
pr 'object not in current database'

end

OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判斷對象是否是table
begin
pr 'The object is not table'

end

select @ident=status&0x80 from syscolumns where id=@objectid and status&0x80=0x80

@ident is not null
pr 'SET IDENTITY_INSERT '+@TableName+' _disibledevent=>c.id=@objectid order by c.colid

open syscolumns_cursor
@column=''
@columndata=''
fetch next from syscolumns_cursor o @name,@xtype

while @@fetch_status < >-1
begin
@@fetch_status < >-2
begin
@xtype not in(189,34,35,99,98) --timestamp不需处理image,text,ntext,sql_variant 暂时不处理

begin
@column=@column+ when len(@column)=0 then'' ','end+@name

@columndata=@columndata+ when len(@columndata)=0 then '' ','','','
end

+ 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+')+''''''''' --uniqueidentier
@name end

end

end

fetch next from syscolumns_cursor o @name,@xtype

end

close syscolumns_cursor
deallocate syscolumns_cursor

@sql=' nocount _disibledevent=>'+@tablename+'('+@column+') values(''as ''--'','+@columndata+','')'' from '+@tablename

pr '--'+@sql
exec(@sql)

@ident is not null
pr 'SET IDENTITY_INSERT '+@TableName+' OFF'

GO

exec UspOutputData 你表名

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: