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

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

SQL Server編寫存儲(chǔ)過(guò)程小工具(二)

2024-08-31 00:50:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

SQL Server編寫存儲(chǔ)過(guò)程小工具
以下是兩個(gè)存儲(chǔ)過(guò)程的源程序
/*===========================================================

語(yǔ)法: sp_GenInsert <Table Name>,<Stored PRocedure Name>
以northwind 數(shù)據(jù)庫(kù)為例
sp_GenInsert 'Employees', 'INS_Employees'

注釋:如果您在Master系統(tǒng)數(shù)據(jù)庫(kù)中創(chuàng)建該過(guò)程,那您就可以在您服務(wù)器上所有的數(shù)據(jù)庫(kù)中使用該過(guò)程。

=============================================================*/

CREATE procedure sp_GenInsert
@TableName varchar(130),
@ProcedureName varchar(130)
as
set nocount on

declare @maxcol int,
@TableID int

set @TableID = object_id(@TableName)

select @MaxCol = max(colorder)
from syscolumns
where id = @TableID

select 'Create Procedure ' + rtrim(@ProcedureName) as type,0 as colorder into #TempProc
union
select convert(char(35),'@' + syscolumns.name)
+ rtrim(systypes.name)
+ case when rtrim(systypes.name) in ('binary','char','nchar','nvarchar','varbinary','varchar') then '(' + rtrim(convert(char(4),syscolumns.length)) + ')'
when rtrim(systypes.name) not in ('binary','char','nchar','nvarchar','varbinary','varchar') then ' '
end
+ case when colorder < @maxcol then ','
when colorder = @maxcol then ' '
end
as type,
colorder
from syscolumns
join systypes on syscolumns.xtype = systypes.xtype
where id = @TableID and systypes.name <> 'sysname'
union
select 'AS',@maxcol + 1 as colorder
union
select 'INSERT INTO ' + @TableName,@maxcol + 2 as colorder
union
select '(',@maxcol + 3 as colorder
union
select syscolumns.name
+ case when colorder < @maxcol then ','
when colorder = @maxcol then ' '
end
as type,
colorder + @maxcol + 3 as colorder
from syscolumns
join systypes on syscolumns.xtype = systypes.xtype
where id = @TableID and systypes.name <> 'sysname'
union
select ')',(2 * @maxcol) + 4 as colorder
union
select 'VALUES',(2 * @maxcol) + 5 as colorder
union
select '(',(2 * @maxcol) + 6 as colorder
union
select '@' + syscolumns.name
+ case when colorder < @maxcol then ','
when colorder = @maxcol then ' '
end
as type,
colorder + (2 * @maxcol + 6) as colorder
from syscolumns
join systypes on syscolumns.xtype = systypes.xtype
where id = @TableID and systypes.name <> 'sysname'
union
select ')',(3 * @maxcol) + 7 as colorder
order by colorder


select type from #tempproc order by colorder

drop table #tempproc


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 禄劝| 肃南| 南溪县| 莒南县| 衢州市| 洪洞县| 新绛县| 邛崃市| 墨玉县| 阿图什市| 连平县| 航空| 阳曲县| 巴彦县| 依安县| 中江县| 荥经县| 察雅县| 屯门区| 象州县| 色达县| 延边| 孟州市| 措勤县| 霍城县| 蓬莱市| 颍上县| 汶川县| 云南省| 承德县| 广汉市| 山西省| 教育| 师宗县| 革吉县| 商南县| 沐川县| 孙吴县| 库伦旗| 布拖县| 通州市|