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
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
/*===============源程序结束==================*/
转载于:https://www.cnblogs.com/mjgforever/archive/2006/04/10/371091.html
SQL Server编写存储过程小工具(三)相关推荐
- SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数
很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之前开发的系统要么因为历史原因用的是SQL2000要么根本用不着在SQL Server中启用CLR ...
- SQL Server 2000初识—管理工具与设计基础
作为关系型数据库的一个代表"SQL Server 2000"可以说是一个比较适合初学者的功能比较全面的数据库管理软件.而这篇文章主要是介绍一些关于SQL Server 2000的管 ...
- ExcelToDatabase:批量导入Excel文件到MySQL/Oracle/SQL Server数据库的自动化工具
ExcelToDatabase:批量导入Excel到MySQL/Oracle/SQL Server数据库的自动化工具 简介 ExcelToDatabase 是一个可以批量导入excel到mysql/o ...
- VB实现SQL Server 2000存储过程调用
VB实现SQL Server 2000存储过程调用 幸运好时机,注册赢手机 2005 三星yepp夏季数码旅游风 [文章信息] 作者: 刘兴权 陈奇 吴兵 刘雪松 时洪飞 时间: 2005-05-19 ...
- python 编写实用小工具-toy: python平时积累的笔记以及编写的小工具
所有人都告诉你怎么活,只有自己没有搞清楚该如何活.相信自己,我们每个人都是主角?? toy Python ?? 献给我亲爱的女朋友--如 ? 介绍 学习 python.matlab 时积累的笔记以及编 ...
- SQL Server分页存储过程实践(图解)
下面来对SQL Server分页存储过程进行一下实做.图解成功的各个步骤. 一 找到大数据量的示例表 分页都是针对大记录数的表:反之有大记录数的表,可能就需要分页.例如银行用户表,就会上千万.下面先做 ...
- SQL Server与Oracle、DB2三种数据库比较
开发数据库应用,选择一个好的数据库是非常重要的.本文从一些方面比较了SQL Server与Oracle.DB2三种数据库,为你选择数据库提供一些参考. 开放性 SQL Server 只能在Window ...
- 实验8 SQL Server 的存储过程
实验8 SQL Server 的存储过程 一.实验目的 1.掌握使用T-SQL编程的方法 2.掌握使用T-SQL语句创建一个存储过程并验证 3.掌握创建和执行带参数的存储过程 4.熟练使用系统存储过程 ...
- 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结...
作者:liigo 日期:2010/8/25 Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接 ...
最新文章
- oracle 查询空值异常,Oracle中的NULL
- (超级详细)jit的介绍和用法
- iis 发布MVC HTTP错误 403.14
- python编程工具p-这里有123个黑客必备的Python工具!
- 提高Service提高进程优先级别,不被系统容易杀死
- redis:RDM连接阿里云redis服务器
- ORB-SLAM2-金字塔求解-特征点的提取-描述子的计算
- server数据库与oracle,浅析Oracle和SQL Server-数据库专栏,ORACLE
- Vim用原生雅黑Consolas混合字体
- 计蒜客——回文平方数
- h264解码延迟优化_JEET Air Plus:延迟优化技术,让你游戏不掉线
- java游戏主角用毛笔_Java FX版的毛笔效果
- 十五章、KPI(千峰网络安全300课时笔记)
- 简单粗暴理解与实现机器学习之K-近邻算法(三):距离度量、欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化距离、余弦距离、汉明距离、杰卡德距离、马氏距离
- 不会压测?没关系,手把手教你用jmeter做压力测试及结果分析
- 菲尔兹奖-历届获得者
- chrome主页被篡改后缀为?tn=49055317_4_hao_pg
- MMKV数据存储组件的使用介绍
- Python中的StringIO与cStringIO简析
- PF_INET 和 AF_INET的区别