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

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

     查询结果如下:

SQL

  例 4 – 使用RAISERROR 语句的存储过程

  在这个例子中,将把例3中的2个步骤整合到一个存储过程中。存储过程的第一步是取得ContactID,第二步是查询人员的姓名和地址信息。然后添加RAISERROR语句,如果查询不到记录则返回错误信息。

  RAISERROR语句可以用来控制应用程序处理无数据或其它错误的方式。将该存储过程执行2次,看看能找到数据和不能找到数据的情况下各返回什么。

ALTER PROCEDURE uspGetContact @LastName NVARCHAR(50)
  AS
  DECLARE @ContactID INT
  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
  IF @@ROWCOUNT > 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'

  查询结果如下:

SQL

EXEC uspGetContact @LastName='Job'

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

【责编:Zenghui】

中国IT教育

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

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