MS SQL Server store procedure Generator

        今天整理机器,发现以前写的一个小工具,用来生成MS SQL Server 的存储过程,把它放到这里,或许可以帮助写朋友减轻些工作,功能介绍:
1、自动根据数据库表结构及关联关系创建存储过程,您只要选择表,然后点击一个按钮便会生成常用的存储过程。
2、可以生成分页的查询存储过程,分页存储过程按照主键、索引、外键、以及全部字段进行分页。
3、根据数据库表主键,索引,外键创建delete、update的存储过程。
4、生成Insert存储过程。
运行环境:.NET framework 1.1,Ms SQL Server 2000
以pubs数据库中的authors表为例,生成存储过程如下: 
 

None.gif CREATE   PROCEDURE  DBO.Get_authors_All
None.gif
AS  
None.gif    
SELECT  
None.gif        au_id, 
None.gif        au_lname, 
None.gif        au_fname, 
None.gif        phone, 
None.gif        address, 
None.gif        city, 
None.gif        state, 
None.gif        zip, 
None.gif        contract 
None.gif    
FROM  authors     
None.gif
RETURN   0  
None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Get_authors_Count 
None.gif
AS  
None.gif    
SELECT   COUNT ( *
None.gif    
FROM  authors  
None.gif
RETURN   0  None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Get_authors_All_Paged 
None.gif    @__intPageNumber 
int
None.gif    @__intPageSize 
int  
None.gif
AS  
None.gif    
DECLARE  @intStart  int , @intEnd  int  
None.gif    
SET  @intStart  =  (((@__intPageNumber  -   1 *  @__intPageSize)  +   1
None.gif    
SET  @intEnd  =  (@intStart  +  @__intPageSize  -   1
None.gif    
DECLARE  @TemporaryTable  TABLE  
None.gif    (Row 
INT   IDENTITY ( 1 , 1 PRIMARY   KEY
None.gif    au_id    ID 
NOT   NULL  
None.gif    ) 
None.gif
None.gif    
INSERT   INTO  @TemporaryTable 
None.gif    
SELECT  au_id 
None.gif    
FROM  authors 
None.gif    
None.gif
None.gif    
SELECT  
None.gif    b.au_id, 
None.gif    b.au_lname, 
None.gif    b.au_fname, 
None.gif    b.phone, 
None.gif    b.address, 
None.gif    b.city, 
None.gif    b.state, 
None.gif    b.zip, 
None.gif    b.contract 
None.gif    
FROM  @TemporaryTable a  INNER   JOIN  authors b 
None.gif    
ON  a.au_id  =  b.au_id 
None.gif    
WHERE  (a.Row  >=  @intStart)  AND  (a.Row  <=  @intEnd) 
None.gif
RETURN   0  None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Get_authors_ByPrimaryKey 
None.gif    @au_id    ID 
None.gif
None.gif
AS  
None.gif    
SELECT  
None.gif        au_id, 
None.gif        au_lname, 
None.gif        au_fname, 
None.gif        phone, 
None.gif        address, 
None.gif        city, 
None.gif        state, 
None.gif        zip, 
None.gif        contract 
None.gif    
FROM  authors 
None.gif    
WHERE  au_id = @au_id 
None.gif
RETURN   0  None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Get_authors_All_By_aunmind 
None.gif    @au_lname    
VARCHAR ( 40 ), 
None.gif    @au_fname    
VARCHAR ( 20 None.gif
None.gif
AS  
None.gif    
SELECT  
None.gif        au_id, 
None.gif        au_lname, 
None.gif        au_fname, 
None.gif        phone, 
None.gif        address, 
None.gif        city, 
None.gif        state, 
None.gif        zip, 
None.gif        contract 
None.gif    
FROM  authors 
None.gif    
WHERE  au_lname = @au_lname  AND  au_fname = @au_fname 
None.gif
RETURN   0  None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Get_authors_Count_By_aunmind 
None.gif    @au_lname    
VARCHAR ( 40 ), 
None.gif    @au_fname    
VARCHAR ( 20
None.gif
AS  
None.gif    
SELECT   COUNT ( *
None.gif    
FROM  authors 
None.gif    
WHERE  au_lname = @au_lname  AND  au_fname = @au_fname 
None.gif
RETURN   0  None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Get_authors_Paged_By_aunmind 
None.gif    @__intPageNumber 
int
None.gif    @__intPageSize 
int
None.gif    @au_lname    
VARCHAR ( 40 ), 
None.gif    @au_fname    
VARCHAR ( 20
None.gif
AS  
None.gif    
DECLARE  @intStart  int , @intEnd  int  
None.gif    
SET  @intStart  =  (((@__intPageNumber  -   1 *  @__intPageSize)  +   1
None.gif    
SET  @intEnd  =  (@intStart  +  @__intPageSize  -   1
None.gif    
DECLARE  @TemporaryTable  TABLE  
None.gif    (Row 
INT   IDENTITY ( 1 , 1 PRIMARY   KEY
None.gif    au_id    ID 
NOT   NULL  
None.gif    ) 
None.gif
None.gif    
INSERT   INTO  @TemporaryTable 
None.gif    
SELECT  au_id 
None.gif    
FROM  authors 
None.gif    
WHERE  au_lname = @au_lname  AND  au_fname = @au_fname 
None.gif
None.gif    
SELECT  
None.gif    b.au_id, 
None.gif    b.au_lname, 
None.gif    b.au_fname, 
None.gif    b.phone, 
None.gif    b.address, 
None.gif    b.city, 
None.gif    b.state, 
None.gif    b.zip, 
None.gif    b.contract 
None.gif    
FROM  @TemporaryTable a  INNER   JOIN  authors b 
None.gif    
ON  a.au_id  =  b.au_id 
None.gif    
WHERE  (a.Row  >=  @intStart)  AND  (a.Row  <=  @intEnd) 
None.gif
RETURN   0  None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Delete_authors_All 
None.gif
AS  
None.gif    
DELETE   FROM  authors 
None.gif    
None.gif
RETURN   0  None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Delete_authors_ByPrimaryKey 
None.gif    @au_id    ID 
None.gif
AS  
None.gif    
DELETE   FROM  authors 
None.gif    
WHERE  au_id = @au_id 
None.gif
RETURN   0  None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Delete_authors_By_aunmind 
None.gif    @au_lname    
VARCHAR ( 40 ), 
None.gif    @au_fname    
VARCHAR ( 20
None.gif
AS  
None.gif    
DELETE   FROM  authors 
None.gif    
WHERE  au_lname = @au_lname  AND  au_fname = @au_fname 
None.gif
RETURN   0  None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Update_authors_All 
None.gif    @au_id    ID, 
None.gif    @au_lname    
VARCHAR ( 40 ), 
None.gif    @au_fname    
VARCHAR ( 20 ), 
None.gif    @phone    
CHAR ( 12 ), 
None.gif    @address    
VARCHAR ( 40 =   NULL
None.gif    @city    
VARCHAR ( 20 =   NULL
None.gif    @state    
CHAR ( 2 =   NULL
None.gif    @zip    
CHAR ( 5 =   NULL
None.gif    @contract    
BIT  
None.gif
AS  
None.gif    
UPDATE  authors 
None.gif    
SET  
None.gif        au_id 
=  @au_id, 
None.gif        au_lname 
=  @au_lname, 
None.gif        au_fname 
=  @au_fname, 
None.gif        phone 
=  @phone, 
None.gif        address 
=  @address, 
None.gif        city 
=  @city, 
None.gif        state 
=  @state, 
None.gif        zip 
=  @zip, 
None.gif        contract 
=  @contract None.gif    
None.gif
RETURN   0  None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Update_authors_ByPrimaryKey 
None.gif    @au_id    ID, 
None.gif    @au_lname    
VARCHAR ( 40 ), 
None.gif    @au_fname    
VARCHAR ( 20 ), 
None.gif    @phone    
CHAR ( 12 ), 
None.gif    @address    
VARCHAR ( 40 =   NULL
None.gif    @city    
VARCHAR ( 20 =   NULL
None.gif    @state    
CHAR ( 2 =   NULL
None.gif    @zip    
CHAR ( 5 =   NULL
None.gif    @contract    
BIT  
None.gif
AS  
None.gif    
UPDATE  authors 
None.gif    
SET  
None.gif        au_id 
=  @au_id, 
None.gif        au_lname 
=  @au_lname, 
None.gif        au_fname 
=  @au_fname, 
None.gif        phone 
=  @phone, 
None.gif        address 
=  @address, 
None.gif        city 
=  @city, 
None.gif        state 
=  @state, 
None.gif        zip 
=  @zip, 
None.gif        contract 
=  @contract 
None.gif    
WHERE  au_id = @au_id 
None.gif
RETURN   0  None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Update_authors_By_aunmind 
None.gif    @au_id    ID, 
None.gif    @au_lname    
VARCHAR ( 40 ), 
None.gif    @au_fname    
VARCHAR ( 20 ), 
None.gif    @phone    
CHAR ( 12 ), 
None.gif    @address    
VARCHAR ( 40 =   NULL
None.gif    @city    
VARCHAR ( 20 =   NULL
None.gif    @state    
CHAR ( 2 =   NULL
None.gif    @zip    
CHAR ( 5 =   NULL
None.gif    @contract    
BIT  
None.gif
AS  
None.gif    
UPDATE  authors 
None.gif    
SET  
None.gif        au_id 
=  @au_id, 
None.gif        au_lname 
=  @au_lname, 
None.gif        au_fname 
=  @au_fname, 
None.gif        phone 
=  @phone, 
None.gif        address 
=  @address, 
None.gif        city 
=  @city, 
None.gif        state 
=  @state, 
None.gif        zip 
=  @zip, 
None.gif        contract 
=  @contract 
None.gif    
WHERE  au_lname = @au_lname  AND  au_fname = @au_fname 
None.gif
RETURN   0  None.gif
None.gif
None.gif
CREATE   PROCEDURE  DBO.Insert_authors 
None.gif    @au_id    ID, 
None.gif    @au_lname    
VARCHAR ( 40 ), 
None.gif    @au_fname    
VARCHAR ( 20 ), 
None.gif    @phone    
CHAR ( 12 ), 
None.gif    @address    
VARCHAR ( 40 =   NULL
None.gif    @city    
VARCHAR ( 20 =   NULL
None.gif    @state    
CHAR ( 2 =   NULL
None.gif    @zip    
CHAR ( 5 =   NULL
None.gif    @contract    
BIT  
None.gif
AS  
None.gif    
INSERT   INTO  authors 
None.gif        ( 
None.gif        au_id, 
None.gif        au_lname, 
None.gif        au_fname, 
None.gif        phone, 
None.gif        address, 
None.gif        city, 
None.gif        state, 
None.gif        zip, 
None.gif        contract 
None.gif        ) 
None.gif        
VALUES
None.gif        @au_id, 
None.gif        @au_lname, 
None.gif        @au_fname, 
None.gif        @phone, 
None.gif        @address, 
None.gif        @city, 
None.gif        @state, 
None.gif        @zip, 
None.gif        @contract 
None.gif        ) 
None.gif
RETURN   0  
None.gif
None.gif


执行文件下载:http://files.cnblogs.com/mist/Generator.rar
源代码下载:http://files.cnblogs.com/mist/SqlSPGen.rar

如果有任何问题或者建议请给我发邮件,邮件地址在软件里面有,就不列到这里了!

转载于:https://www.cnblogs.com/mist/archive/2005/03/01/Generator.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值