首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT教育
Google
您现在的位置: 中国IT实验室 >> Windows >> 服务器技术 >> SQL Server >> 正文

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

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

  

SQL

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

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

CREATE PROCEDURE uspFindContact @LastName NVARCHAR(50), @ContactID INT output
  AS
  SELECT TOP 1 @ContactID = c.ContactID
  FROM HumanResources.Employee a
  INNER JOIN HumanResources.EmployeeAddress b ON a.EmployeeID = b.EmployeeID
  INNER JOIN Person.Contact c ON a.ContactID = c.ContactID
  INNER JOIN Person.Address d ON b.AddressID = d.AddressID
  WHERE c.LastName = @LastName

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

ALTER PROCEDURE uspGetContact @LastName NVARCHAR(50)
  AS
  DECLARE @ContactID INT
  SET @ContactID = 0
  EXEC uspFindContact @LastName=@LastName, @ContactID=@ContactID OUTPUT
  IF @ContactID <> 0
  BEGIN
  SELECT ContactID, FirstName, LastName
  FROM Person.Contact
  WHERE ContactID = @ContactID
  SELECT d.AddressLine1, d.City, d.PostalCode
  FROM HumanResources.Employee a
  INNER JOIN HumanResources.EmployeeAddress b ON a.EmployeeID = b.EmployeeID
  INNER JOIN Person.Contact c ON a.ContactID = c.ContactID
  INNER JOIN Person.Address d ON b.AddressID = d.AddressID
  WHERE c.ContactID = @ContactID
  END
  ELSE
  BEGIN
  RAISERROR ('No record found',10,1)
  END
  EXEC uspGetContact @LastName='Walters'
  

上一页  [1] [2] [3] [4] [5] 下一页

【责编:Zenghui】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 专题推荐

 ·带你领略windows系统“另类”安装
 ·“调教”磁盘,让Vista更在行
 ·windows系统性能优化专题
 ·windows系统安全——系统进程与病毒
 ·Windows 平台搭建VPN攻略…
 ·Windiws 系统备份与还原…
 ·专题:Windows Vista系统新特性…
 ·Windows server 2008专题报道…
 ·关注未来 关注Windows Vista成长…
 ·明明白白 学会Windows权限设置…
 今日更新
 认证培训
 频道精选
 Windows频道导航