SQL存儲(chǔ)過(guò)程入門級(jí)教程 |
|
|
如果其他用戶要使用某個(gè)存儲(chǔ)過(guò)程,那么在該存儲(chǔ)過(guò)程內(nèi)部,一些語(yǔ)句使用的對(duì)象名必須使用對(duì)象所有者的名稱限定。這些語(yǔ)句包括: ALTER TABLE CREATE INDEX CREATE TABLE 所有 DBCC 語(yǔ)句 DROP TABLE DROP INDEX TRUNCATE TABLE UPDATE STATISTICS 權(quán)限 CREATE PROCEDURE 的權(quán)限默認(rèn)授予 sysadmin 固定服務(wù)器角色成員和 db_owner 和 db_ddladmin 固定數(shù)據(jù)庫(kù)角色成員。sysadmin 固定服務(wù)器角色成員和 db_owner 固定數(shù)據(jù)庫(kù)角色成員可以將 CREATE PROCEDURE 權(quán)限轉(zhuǎn)讓給其他用戶。執(zhí)行存儲(chǔ)過(guò)程的權(quán)限授予過(guò)程的所有者,該所有者可以為其它數(shù)據(jù)庫(kù)用戶設(shè)置執(zhí)行權(quán)限。 示例 A. 使用帶有復(fù)雜 SELECT 語(yǔ)句的簡(jiǎn)單過(guò)程 下面的存儲(chǔ)過(guò)程從四個(gè)表的聯(lián)接中返回所有作者(提供了姓名)、出版的書籍以及出版社。該存儲(chǔ)過(guò)程不使用任何參數(shù)。 USE pubs IF EXISTS (SELECT name FROM sysobjects WHERE name = \’au_info_all\’ AND type = \’P\’) DROP PROCEDURE au_info_all GO CREATE PROCEDURE au_info_all AS SELECT au_lname, au_fname, title, pub_name FROM authors a INNER JOIN titleauthor ta ON a.au_id = ta.au_id INNER JOIN titles t ON t.title_id = ta.title_id INNER JOIN publishers p ON t.pub_id = p.pub_id GO au_info_all 存儲(chǔ)過(guò)程可以通過(guò)以下方法執(zhí)行: EXECUTE au_info_all -- Or EXEC au_info_all 如果該過(guò)程是批處理中的第一條語(yǔ)句,則可使用: au_info_all |
聯(lián)系客服