日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

存储过程学习三(创建存储过程实例)

發(fā)布時(shí)間:2025/4/5 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 存储过程学习三(创建存储过程实例) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
A. 使用帶有復(fù)雜 SELECT 語句的簡單過程

下面的存儲(chǔ)過程從四個(gè)表的聯(lián)接中返回所有作者(提供了姓名)、出版的書籍以及出版社。
該存儲(chǔ)過程不使用任何參數(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ǔ)過程可以通過以下方法執(zhí)行:

EXECUTE au_info_all -- Or EXEC au_info_all

如果該過程是批處理中的第一條語句,則可使用:

au_info_all ?
B. 使用帶有參數(shù)的簡單過程

下面的存儲(chǔ)過程從四個(gè)表的聯(lián)接中只返回指定的作者(提供了姓名)、出版的書籍以及出版社。該存儲(chǔ)過程接受與
傳遞的參數(shù)精確匹配的值。

USE pubs IF EXISTS (SELECT name FROM sysobjects WHERE name = 'au_info' AND type = 'P') DROP PROCEDURE au_info GO USE pubs GO CREATE PROCEDURE au_info @lastname varchar(40), @firstname varchar(20) 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 WHERE au_fname = @firstname AND au_lname = @lastname GO

au_info 存儲(chǔ)過程可以通過以下方法執(zhí)行:

EXECUTE au_info 'Dull', 'Ann' -- Or EXECUTE au_info @lastname = 'Dull', @firstname = 'Ann' -- Or EXECUTE au_info @firstname = 'Ann', @lastname = 'Dull' -- Or EXEC au_info 'Dull', 'Ann' -- Or EXEC au_info @lastname = 'Dull', @firstname = 'Ann' -- Or EXEC au_info @firstname = 'Ann', @lastname = 'Dull'

如果該過程是批處理中的第一條語句,則可使用:

au_info 'Dull', 'Ann' -- Or au_info @lastname = 'Dull', @firstname = 'Ann' -- Or au_info @firstname = 'Ann', @lastname = 'Dull' ? ?
C. 使用帶有通配符參數(shù)的簡單過程

下面的存儲(chǔ)過程從四個(gè)表的聯(lián)接中只返回指定的作者(提供了姓名)、出版的書籍以及出版社。該存儲(chǔ)過程對傳遞
的參數(shù)進(jìn)行模式匹配,如果沒有提供參數(shù),則使用預(yù)設(shè)的默認(rèn)值。

USE pubs IF EXISTS (SELECT name FROM sysobjects WHERE name = 'au_info2' AND type = 'P') DROP PROCEDURE au_info2 GO USE pubs GO CREATE PROCEDURE au_info2 @lastname varchar(30) = 'D%', @firstname varchar(18) = '%' 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 WHERE au_fname LIKE @firstname AND au_lname LIKE @lastname GO

au_info2 存儲(chǔ)過程可以用多種組合執(zhí)行。下面只列出了部分組合:

EXECUTE au_info2 -- Or EXECUTE au_info2 'Wh%' -- Or EXECUTE au_info2 @firstname = 'A%' -- Or EXECUTE au_info2 '[CK]ars[OE]n' -- Or EXECUTE au_info2 'Hunter', 'Sheryl' -- Or EXECUTE au_info2 'H%', 'S%' ? D.使用 WITH ENCRYPTION 選項(xiàng)

WITH ENCRYPTION 子句對用戶隱藏存儲(chǔ)過程的文本。下例創(chuàng)建加密過程,使用 sp_helptext 系統(tǒng)存儲(chǔ)過程獲
取關(guān)于加密過程的信息,然后嘗試直接從 syscomments 表中獲取關(guān)于該過程的信息。

IF EXISTS (SELECT name FROM sysobjects WHERE name = 'encrypt_this' AND type = 'P') DROP PROCEDURE encrypt_this GO USE pubs GO CREATE PROCEDURE encrypt_this WITH ENCRYPTION AS SELECT * FROM authors GO EXEC sp_helptext encrypt_this

下面是結(jié)果集:

The object's comments have been encrypted.

接下來,選擇加密存儲(chǔ)過程內(nèi)容的標(biāo)識(shí)號和文本。

SELECT c.id, c.text FROM syscomments c INNER JOIN sysobjects o ON c.id = o.id WHERE o.name = 'encrypt_this'

下面是結(jié)果集:

說明??text 列的輸出顯示在單獨(dú)一行中。執(zhí)行時(shí),該信息將與 id 列信息出現(xiàn)在同一行中。

?

id text ---------- ------------------------------------------------------------ 1413580074 ?????????????????????????????????e??????????????????????????????????????????? ??????????????????????????????? (1 row(s) affected)

轉(zhuǎn)載于:https://www.cnblogs.com/ufo0303/archive/2006/08/22/482975.html

總結(jié)

以上是生活随笔為你收集整理的存储过程学习三(创建存储过程实例)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。