WEB开发网
开发学院数据库MSSQL Server SQL Server存储过程入门案例详解 阅读

SQL Server存储过程入门案例详解

 2008-08-09 09:55:00 来源:WEB开发网   
核心提示: 查询结果如下:EXECuspGetContact@LastName='Job'当第一步查询无数据时,整个存储过程的执行结果如下:例 5 -调用存储过程的存储过程这个例子中有2个存储过程,SQL Server存储过程入门案例详解(4),第一个存储过程uspFindContac

查询结果如下:

SQL Server存储过程入门案例详解

EXECuspGetContact@LastName='Job'

当第一步查询无数据时,整个存储过程的执行结果如下:

SQL Server存储过程入门案例详解

例 5 -调用存储过程的存储过程

这个例子中有2个存储过程。第一个存储过程uspFindContact查找第一条带有地址信息的记录并将ContactID返回给调用它的存储过程,然后显示人员和地址信息。

CREATEPROCEDUREuspFindContact@LastNameNVARCHAR(50),@ContactIDINToutput
  AS
  SELECTTOP1@ContactID=c.ContactID
  FROMHumanResources.Employeea
  INNERJOINHumanResources.EmployeeAddressbONa.EmployeeID=b.EmployeeID
  INNERJOINPerson.ContactcONa.ContactID=c.ContactID
  INNERJOINPerson.AddressdONb.AddressID=d.AddressID
  WHEREc.LastName=@LastName

下面的代码对uspGetContact做了一点修改:调用uspFindContact并返回结果集。

ALTERPROCEDUREuspGetContact@LastNameNVARCHAR(50)
  AS
  DECLARE@ContactIDINT
  SET@ContactID=0
  EXECuspFindContact@LastName=@LastName,@ContactID=@ContactIDOUTPUT
  IF@ContactID<>0
  BEGIN
  SELECTContactID,FirstName,LastName
  FROMPerson.Contact
  WHEREContactID=@ContactID
  SELECTd.AddressLine1,d.City,d.PostalCode
  FROMHumanResources.Employeea
  INNERJOINHumanResources.EmployeeAddressbONa.EmployeeID=b.EmployeeID
  INNERJOINPerson.ContactcONa.ContactID=c.ContactID
  INNERJOINPerson.AddressdONb.AddressID=d.AddressID
  WHEREc.ContactID=@ContactID
  END
  ELSE
  BEGIN
  RAISERROR('Norecordfound',10,1)
  END
  EXECuspGetContact@LastName='Walters'

上一页  1 2 3 4 5  下一页

Tags:SQL Server 存储

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接