存储过程 创建

来源:互联网 发布:gta5优化补丁 编辑:程序博客网 时间:2024/06/02 01:47
A. 创建使用参数的存储过程

下例创建一个在 pubs 数据库中很有用的存储过程。给出一个作者的姓和名,该存储过程将显示该作者的每本书的标题和出版商。

CREATE PROC au_info @lastname varchar(40), @firstname varchar(20) AS SELECT au_lname, au_fname, title, pub_nameFROM authors INNER JOIN titleauthor ON authors.au_id = titleauthor.au_id   JOIN titles ON titleauthor.title_id = titles.title_id   JOIN publishers ON titles.pub_id = publishers.pub_idWHERE au_fname = @firstnameAND au_lname = @lastnameGO

 

B. 创建使用参数默认值的存储过程

下例创建一个存储过程 pub_info2,该存储过程显示作为参数给出的出版商所出版的某本书的作者姓名。如果未提供出版商的名称,该存储过程将显示由 Algodata Infosystems 出版的书籍的作者。

CREATE PROC pub_info2 @pubname varchar(40) = 'Algodata Infosystems'AS SELECT au_lname, au_fname, pub_nameFROM authors a INNER JOIN titleauthor ta ON a.au_id = ta.au_id   JOIN titles t ON ta.title_id = t.title_id   JOIN publishers p ON t.pub_id = p.pub_idWHERE @pubname = p.pub_name
C. 执行用显式值替代参数默认值的存储过程

在下例中,存储过程 showind2 @table 参数默认值是 titles

CREATE PROC showind2 @table varchar(30) = 'titles'AS SELECT TABLE_NAME = sysobjects.name,INDEX_NAME = sysindexes.name, INDEX_ID = indidFROM sysindexes INNER JOIN sysobjects ON sysobjects.id = sysindexes.idWHERE sysobjects.name = @table
d. 使用包含通配符的参数默认值创建存储过程

如果存储过程将参数用于 LIKE 关键字,那么默认值可包括通配符(%、_、[] 和 [^])。例如,可将 showind 修改为当不提供参数时显示有关系统表的信息:

CREATE PROC showind4 @table varchar(30) = 'sys%'AS SELECT TABLE_NAME = sysobjects.name,   INDEX_NAME = sysindexes.name, INDEX_ID = indidFROM sysindexes INNER JOIN sysobjectsON sysobjects.id = sysindexes.idWHERE sysobjects.name LIKE @table