9core.com - 九核技术交流网

九百链
为了更好的解决实际工作中遇到的问题,本站开设了QQ群 ASP+PHP+JSP+.NET①:9793624
ASP+PHP+JSP+.NET②:17775294
网站通告: 新开设QQ群,群号:17775294 九核WEB技术专业论坛 官方QQ群 9793624
搜索: 您的位置主页> 程序开发 > 数据库技术 >阅读资讯: SQLServer编写存储过程小工具(一)

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

文章来源:互联网 发表时间:2008-09-08 点击次数

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

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm


Sp_GenInsert

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

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

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

语法如下

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

sp_GenInsert<TableName>,<StoredProcedureName>

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

以northwind数据库为例

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

sp_GenInsert’Employees’,’INS_Employees’

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

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

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm


Sp_GenUpdate

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

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

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

sp_GenUpdate<TableName>,<PrimaryKey>,<StoredProcedureName>

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

以northwind数据库为例

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

sp_GenUpdate’Employees’,’EmployeeID’,’UPD_Employees’

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

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

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

CreateProcedureUPD_Employees

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@EmployeeIDint

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@LastNamenvarchar(40),

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@FirstNamenvarchar(20),

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@Titlenvarchar(60),

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@TitleofCourtesynvarchar(50),

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@BirthDatedatetime,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@HireDatedatetime,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@Addressnvarchar(120),

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@Citynvarchar(30),

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@Regionnvarchar(30),

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@PostalCodenvarchar(20),

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@Countrynvarchar(30),

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@HomePhonenvarchar(48),

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@Extensionnvarchar(8),

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@Photeimage,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@Notesntext,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@ReportsToint,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

@PhotoPathnvarchar(510)

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

AS

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

UPDATEEmployees

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

SET

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

LastName=@LastName,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

FirstName=@FirstName,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

Title=@Title,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

TitleofCourtesy=@TitleofCourtesy,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

BirthDate=@BirthDate,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

HireDate=@HireDate,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

Address=@Address,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

City=@City,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

Regin=@Regin,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

PostalCode=@PostCode,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

Country=@Country,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

HomePhone=@HomePhone,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

Extension=@Extension,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

Photo=@Photo

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

Notes=@Notes,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

ReportsTo=@ReportsTo,

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

PhotoPath=@PhotoPath

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm

WHEREEmployeeID=@EmployeeID

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm


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

hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm
数据库
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助