中国网格虚拟主机不满意退款承诺!
24小时咨询热线:021-51095771  51087627
中国网格
快速建站 只选网格
域名+空间+数据库+维护 企业网站整体服务商
支付方式数 据 库优惠套餐
您当前的位置 
首页
快速建站
技术
MSSQL
正文

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

发布时间:2012-10-26 15:15:32| www.cnwg.cn | 文章标签:MSSQL,存储过程,小工具

SQL Server编写存储过程小工具  

功能:为给定表创建Update存储过程 

语法: sp_GenUpdate

,,

以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

select type from #tempproc order by colorder

drop table #tempproc

/*=======源程序结束=========*/


数据库空间

数据库存储空间

价格:200元/100M

MySql,SQL可选择

参考资料

我要评价

评价发表成功

错误提示
中国网格所属上海羽灿计算机科技有限公司版权所有 Copyright©cnwg.cn 2003-2013,All Rights Reserved.

联系电话:021-51095771 021-51087627 传真:021-51087637-202
版权所有:上海羽灿计算机科技有限公司 中国网格(cnwg.cn/cnwg.cc)©2003-2013 All Rights Reserved.
地址:上海市银都路3399弄533号 邮编:201108 ICP经营许可证编号:沪B2-20060019 沪ICP备06012189号

  • 经营性网站
    备案信息
  • 网络110
    报警服务
  • 文明办网
    先进单位
  • 支付宝
    特约商家
  • 网络社区
    征信网
  • 上海工商
    网上亮照