国产探花免费观看_亚洲丰满少妇自慰呻吟_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 你的表名

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九台市| 福泉市| 进贤县| 招远市| 鹤山市| 昌都县| 翁源县| 米脂县| 扬中市| 安仁县| 巍山| 普陀区| 晋州市| 财经| 镇沅| 凤阳县| 徐汇区| 宁强县| 沈丘县| 曲沃县| 平塘县| 中卫市| 桃源县| 临夏县| 宜春市| 临洮县| 临潭县| 宕昌县| 天全县| 资源县| 哈巴河县| 威海市| 南澳县| 五大连池市| 安多县| 高淳县| 右玉县| 舒兰市| 龙江县| 安泽县| 东山县|