enet技術(shù)學(xué)院,版權(quán)所有
在開發(fā)數(shù)據(jù)庫系統(tǒng)的過程中,經(jīng)常要寫很多的存儲(chǔ)過程。為了統(tǒng)一格式和簡化開發(fā)過程,我編寫一些存儲(chǔ)過程,用來自動(dòng)生成存儲(chǔ)過程。下面就為您簡單介紹一下它們。其中一個(gè)用于生成insert過程,另一個(gè)用于生成update過程。
sp_geninsert 
該過程運(yùn)行后,它為給定的表生成一個(gè)完整的insert過程。如果原來的表有標(biāo)識(shí)列,您得將生成的過程中的set idntity_insert on 語句手工刪除。
語法如下
sp_geninsert < table name >,< stored procedure name >
以northwind 數(shù)據(jù)庫為例
sp_geninsert ’employees’, ’ins_employees’
最后會(huì)生成一個(gè)insert存儲(chǔ)過程。利用它,您可以作進(jìn)一步的開發(fā)。
sp_genupdate 
它會(huì)為一個(gè)表生成update存儲(chǔ)過程。語法如下:
sp_genupdate < table name >,< primary key >,< stored procedure name >
以northwind 數(shù)據(jù)庫為例
sp_genupdate ’employees’,’employeeid’,’upd_employees’
運(yùn)行后生成如下所示的存儲(chǔ)過程:
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
使用以上的兩個(gè)存儲(chǔ)過程,節(jié)省了我不少時(shí)間。特別是在改變了表結(jié)構(gòu)后,重新構(gòu)造各個(gè)存儲(chǔ)過程的過程中。您可以改寫這兩個(gè)程序,來自動(dòng)生成別的存儲(chǔ)過程。
新聞熱點(diǎn)
疑難解答
圖片精選