国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

將表數據生成SQL腳本的存儲過程

2024-07-21 02:10:38
字體:
來源:轉載
供稿:網友

作者:zlt982001

  將表數據生成sql腳本的存儲過程:

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 [email protected] and status&0x80=0x80

if @ident is not null
print 'set identity_insert '[email protected]+' on'

declare syscolumns_cursor cursor

for select c.name,c.xtype from syscolumns c where [email protected] 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 @[email protected]+case when len(@column)=0 then'' else ','[email protected]

set @[email protected]+case when len(@columndata)=0 then '' else ','','','
end

+case when @xtype in(167,175) then '''''''''+'[email protected]+'+''''''''' --varchar,char
when @xtype in(231,239) then '''n''''''+'[email protected]+'+''''''''' --nvarchar,nchar
when @xtype=61 then '''''''''+convert(char(23),'[email protected]+',121)+''''''''' --datetime
when @xtype=58 then '''''''''+convert(char(16),'[email protected]+',120)+''''''''' --smalldatetime
when @xtype=36 then '''''''''+convert(char(36),'[email protected]+')+''''''''' --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 '[email protected]+'('[email protected]+') values(''as ''--'','[email protected]+','')'' from '[email protected]

print '--'[email protected]
exec(@sql)

if @ident is not null
print 'set identity_insert '[email protected]+' off'

go

exec uspoutputdata 你的表名

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高陵县| 凤庆县| 开封市| 南雄市| 河南省| 山东省| 龙岩市| 新巴尔虎左旗| 吐鲁番市| 嘉峪关市| 洛宁县| 荣成市| 鲁山县| 苏州市| 金华市| 凤翔县| 绥中县| 稻城县| 西宁市| 通渭县| 浙江省| 绩溪县| 嵊泗县| 金门县| 星座| 阿克苏市| 南溪县| 漳浦县| 许昌县| 新建县| 白沙| 仙桃市| 东辽县| 定日县| 黑河市| 营山县| 宜章县| 昭通市| 桂林市| 南陵县| 荃湾区|