SQL Server编写存储过程小工具(三)

菲菲嫲

菲菲嫲

2016-01-29 16:25

SQL Server编写存储过程小工具(三),SQL Server编写存储过程小工具(三)
 

SQL Server编写存储过程小工具
功能:为给定表创建Update存储过程
语法: sp_GenUpdate <Table Name,<Primary Key,<Stored Procedure Name
以northwind 数据库为例
sp_GenUpdate 'Employees','EmployeeID','UPD_Employees'

注释:如果您在Master系统数据库中创建该过程,那您就可以在您服务器上所有的数据库中使用该过程。

===========================================================*/
CREATE procedure sp_GenUpdate
@TableName varchar(130),
@PrimaryKey varchar(130),
@ProcedureName varchar(130)
as
set nocount on

declare @maxcol int,
@TableID int
'knowsky.com
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 'UPDATE ' + @TableName,@maxcol + 2 as colorder
union
select 'SET',@maxcol + 3 as colorder
union
select syscolumns.name + ' = @' + 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 syscolumns.name < @PrimaryKey and systypes.name < 'sysname'
union
select 'WHERE ' + @PrimaryKey + ' = @' + @PrimaryKey,(2 * @maxcol) + 4 as colorder
order by colorder

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)


select type from #tempproc order by colorder

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)

drop table #tempproc
/*=======源程序结束=========*/

 
展开更多 50%)
分享

猜你喜欢

SQL Server编写存储过程小工具(三)

SQLServer
SQL Server编写存储过程小工具(三)

SQL SERVER编写存储过程小工具

Web开发
SQL SERVER编写存储过程小工具

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server编写存储过程小工具(二)

SQLServer
SQL Server编写存储过程小工具(二)

SQL Server编写存储过程小工具(一)

SQLServer
SQL Server编写存储过程小工具(一)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

编写安全的SQL server扩展存储过程

SQLServer
编写安全的SQL server扩展存储过程

编写SQL Server的扩展存储过程实例

SQLServer
编写SQL Server的扩展存储过程实例

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

SQL Server 服务器安装剖析

SQL Server 服务器安装剖析

photoshop教程:合成星空绚烂天使

photoshop教程:合成星空绚烂天使
下拉加载更多内容 ↓