SQL Srever儲存過程

2021-07-10 08:04:57 字數 1581 閱讀 3903

sql srever中儲存過程執行速度快、效率高(事先將儲存過程編譯成二進位制可執行**)、模組式程式設計、減少網路流量(在客戶端呼叫時,只需要使用儲存過程名和引數即可)等優點。

什麼是儲存過程?儲存過程是一組預先編寫好的能夠實現某種功能的t-sql程式,指定乙個程式名並由sql server編譯後儲存在sql server中。在sql server 2008中儲存過程分為三種:系統儲存過程(system stored procedures,sql server 2008自身的)、擴充套件儲存過程(extended stored procedures,以dll形式單獨存在)和使用者自定義儲存過程(user-defined stored procedures),其中在sql server 2008中,使用者自定義儲存過程又分為t-sql儲存過程和clr儲存過程。

那麼什麼是t-sql?什麼又是sql?sql是結構化查詢語言(structured query language),是目前關係型資料庫管理系統中使用最廣泛的查詢語言,分為四大類:資料查詢語言(dql)、資料操縱語言(dml)、資料定義語言(ddl)和資料控制語言(dcl)。而t-sql是在sql上發展而來的,t-sql在sql的基礎上新增了流程控制,是sql語言的擴充套件。t-sql是使用sql server的核心,所有與sql server例項通訊的應用程式都是通過傳送t-sql語句到伺服器來完成對資料庫的操作。

回到儲存過程,在t-sql語言裡使用create procedure建立儲存過程,使用alter procedure修改儲存過程,使用drop procedure刪除儲存過程,使用exec執行儲存過程。

eg:

create procedure pr_test

@moth int

@名稱 nvarchar(50)

asbegin --儲存過程**開始語句。

select *

from 伺服器名.資料庫名.架構名.物件名

where (物件.名稱 = @名稱)

and (物件.月份 = @moth )

end --儲存過程**結束語句。

go --乙個儲存過程是乙個批處理,在遇到go時,查詢編輯器就會認為該儲存過程的**已經結束。

exec pr_test @moth = 10,@名稱 = 小明
最後,下面17個語句不能在儲存過程中使用:

1、create view

2、create default

3、create rule

4、create procedure

5、create function

6、create aggregate

7、create schema

8、create trigger

9、alter function

10、alter view

11、alter trigger

12、alter procedure

13、set parseonly

14、set showplan_text

15、set showplan_all

16、set showplan_xml

17、use database_name

儲存過程系列之儲存過程sql查詢儲存過程的使用

1.查詢某個表被哪些儲存過程 以下簡稱 sp 使用到 select distinct object name id from syscomments where id in select object id from sys.objects where type p and text like ta...

儲存過程系列之儲存過程sql查詢儲存過程的使用

1.查詢某個表被哪些儲存過程 以下簡稱 sp 使用到 select distinct object name id from syscomments where id in select object id from sys.objects where type p and text like ta...

Oracle儲存過程呼叫儲存過程

oracle儲存過程呼叫有返回結果集的儲存過程一般用光標的方式,宣告乙個游標,把結果集放到游標裡面,然後迴圈游標 declare newcs sys refcursor cs1 number cs2 number cstype table rowtype table列的個數和newcs返回的個數一樣...