首页 > 数据库 > SQL Server > 正文

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

2024-08-31 00:48:38
字体:
来源:转载
供稿:网友

enet技术学院,版权所有

在开发数据库系统的过程中,经常要写很多的存储过程。为了统一格式和简化开发过程,我编写一些存储过程,用来自动生成存储过程。下面就为您简单介绍一下它们。其中一个用于生成insert过程,另一个用于生成update过程。


sp_geninsert

该过程运行后,它为给定的表生成一个完整的insert过程。如果原来的表有标识列,您得将生成的过程中的set idntity_insert on 语句手工删除。

语法如下

sp_geninsert < table name >,< stored procedure name >

以northwind 数据库为例

sp_geninsert ’employees’, ’ins_employees’

最后会生成一个insert存储过程。利用它,您可以作进一步的开发。


sp_genupdate

它会为一个表生成update存储过程。语法如下:

sp_genupdate < table name >,< primary key >,< stored procedure name >

以northwind 数据库为例

sp_genupdate ’employees’,’employeeid’,’upd_employees’

运行后生成如下所示的存储过程:

create procedure upd_employees

@employeeid int

@lastname nvarchar(40) ,

@firstname nvarchar(20) ,

@title nvarchar(60) ,

@titleofcourtesy nvarchar(50) ,

@birthdate datetime ,

@hiredate datetime ,

@address nvarchar(120) ,

@city nvarchar(30) ,

@region nvarchar(30) ,

@postalcode nvarchar(20) ,

@country nvarchar(30) ,

@homephone nvarchar(48) ,

@extension nvarchar(8) ,

@phote image ,

@notes ntext ,

@reportsto int ,

@photopath nvarchar(510)

as

update employees

set

lastname = @lastname,

firstname = @firstname,

title = @title,

titleofcourtesy = @titleofcourtesy,

birthdate = @birthdate,

hiredate = @hiredate,

address = @address,

city = @city,

regin = @regin,

postalcode = @postcode,

country = @country,

homephone = @homephone,

extension = @extension,

photo = @photo

notes = @notes,

reportsto = @reportsto,

photopath = @photopath

where employeeid = @employeeid


使用以上的两个存储过程,节省了我不少时间。特别是在改变了表结构后,重新构造各个存储过程的过程中。您可以改写这两个程序,来自动生成别的存储过程。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表