首页  登陆  注册  博客集  下载频道  网络硬盘  学院论坛  家园
IT学院 网站地图 网站地图
收藏本站 收藏本站
高级搜索 高级搜索
 新闻IT新闻 互联网 微软 黑客新闻 网络网络协议 故障 网络管理 TCP/IP 无线技术 解决方案 黑客技术 漏洞 软件评测 安全资讯
 数据MSsql Oracle Mysql PL/SQL 备份 系统:Linux vista Windows FTP 防火墙 注册表 服务器行情 服务器应用 解决方案 WEB服务器
 墙纸风景壁纸 游戏壁纸 体育壁纸 汽车壁纸 人文壁纸 影视壁纸 广告壁纸 花卉壁纸 节日壁纸 动漫壁纸 明星壁纸 绘画壁纸 月历壁纸
当前位置: > 主页>数据库技术>MSsql >SQL Server存储过程入门案例详解
热门文章排行
 
热门文章排行 巧用触发器对"SQL Serve
SQL Server 2000问答
  问:SQL Server 200
ADO数据访问一点通
SQL Server成为低成本建
SQL Server数据库六种数
SQL Server性能分析参
将ACCESS的转化为SQL SE
拷贝的SQL Server 7数据
优化SQL Server服务器内
精采文章推荐
 
精采文章推荐 SQL Server 2008的透明
SQL Server存储过程入门
SQL的基本操作(1.数据类
SQLMail的原理及实际应
维护SQL Server数据库
简单查询和联合查询两方
怎样用SQL 2000 生成XML
SQL Server 2000的安全
SQL配合3389的一次入侵
SQL SERVER 2000 SP2 12
最新更新文章
 
最新更新文章 SQL Server 2008的透明
SQL Server存储过程入门
用ASP调用SQL的视图和存
SQL的基本操作(4.数据的
SQL的基本操作(3.表的相
SQL的基本操作(2.数据库
SQL的基本操作(1.数据类
SQLMail的原理及实际应
维护SQL Server数据库
配置SQL Server 2000选

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

编辑:   来源:  日期:2008-07-18   我要投稿      家园

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

  

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'

 

     第一步查询结果如下:

 

SQL

EXEC uspGetContact @LastName='Job'

  第一步查询结果如下:

SQL

  例 6 -带评论的存储过程

  最后这个例子基于存储过程uspGetContact,并增加了评论功能。展示了如何在一个存储过程中使用评论。存储过程中的评论有2种实现方式:1.使用-- 2.使用/*来作为评论的开始,以*/作为结束。其余部分和上面的例子一样。

ALTER PROCEDURE uspGetContact @LastName NVARCHAR(50)
  AS
  /* This is a sample stored procedure to show
  how comments work within a stored procedure */
  -- declare variable
  DECLARE @ContactID INT
  -- set variable value
  SET @ContactID = 0
  -- execute stored proc and return ContactID value
  EXEC uspFindContact @LastName=@LastName, @ContactID=@ContactID OUTPUT
  -- if ContactID does not equal 0 then return data else return error
  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

  这些都是非常简单的例子,通过这些例子,希望能让大家知道:创建一个SQL Server的存储过程并不难。如果能够在查询窗口或者应用程序中得心应手的使用查询语句,那么按照上面的例子,也就能够非常容易的掌握存储过程的使用。


上一页 1 2下一页


上一篇:用ASP调用SQL的视图和存储过程  
下一篇:SQL Server 2008的透明数据加密
 关键字:  
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:

   文章评论:(0条)
  
 请留名: 匿名评论   点击查看所有评论
 

  责任编辑:IT学院  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。