在开发数据库系统的过程中,经常要写很多的存储过程。为了统一格式和简化开发过程,我编写一些存储过程,用来自动生成存储过程。下面就为您简单介绍一下它们。其中一个用于生成Insert过程,另一个用于生成Update过程。
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm
Sp_GenInsert
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm该过程运行后,它为给定的表生成一个完整的Insert过程。如果原来的表有标识列,您得将生成的过程中的SETIDNTITY_INSERTON语句手工删除。
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm语法如下
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmsp_GenInsert<TableName>,<StoredProcedureName>
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm以northwind数据库为例
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmsp_GenInsert’Employees’,’INS_Employees’
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm最后会生成一个Insert存储过程。利用它,您可以作进一步的开发。
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm
Sp_GenUpdate
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm它会为一个表生成update存储过程。语法如下:
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmsp_GenUpdate<TableName>,<PrimaryKey>,<StoredProcedureName>
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm以northwind数据库为例
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmsp_GenUpdate’Employees’,’EmployeeID’,’UPD_Employees’
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm运行后生成如下所示的存储过程:
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmCreateProcedureUPD_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)
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmAS
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmUPDATEEmployees
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmSET
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmLastName=@LastName,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmFirstName=@FirstName,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmTitle=@Title,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmTitleofCourtesy=@TitleofCourtesy,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmBirthDate=@BirthDate,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmHireDate=@HireDate,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmAddress=@Address,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmCity=@City,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmRegin=@Regin,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmPostalCode=@PostCode,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmCountry=@Country,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmHomePhone=@HomePhone,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmExtension=@Extension,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmPhoto=@Photo
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmNotes=@Notes,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmReportsTo=@ReportsTo,
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmPhotoPath=@PhotoPath
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLmWHEREEmployeeID=@EmployeeID
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm
使用以上的两个存储过程,节省了我不少时间。特别是在改变了表结构后,重新构造各个存储过程的过程中。您可以改写这两个程序,来自动生成别的存储过程。
hUWHn3Hr9WRajK33VXrh9AuCgO13WkgUJVdRKdLm