執行與修改儲存過程

2021-08-20 21:50:03 字數 1829 閱讀 4253

1.執行儲存過程 

要執行某個儲存過程,只要簡單地通過名字就可以引用它。如果對儲存過程的呼叫不是批處理中的第一條語句,則需要使用execute關鍵字。下面是執行儲存過程的語法格式。

[[exec[ute]]]

[[@parameter=]

[varying][=default][output]][,...n]

[with ]

[for replication]

as sql_statement[,...n]

其中的引數和保留字的含義與create procedure語句中的相似。

舉例:使用alter procedure 語句更改儲存過程。

①建立儲存過程employee_dep,以獲取總經理辦的男員工。

create procedure employee_dep as 

select employee_name,***,address,department_name 

from employee e inner join department d

on e.department_id=d.department_id

where ***='男'and  e.department_id='d001'

go執行儲存過程employee_dep,結果如下

執行結果

employee_name

***address

department_name

1錢大理

男東風路79號

銷售部2

東方牧男

五一北路24號

銷售部②用select語句查詢系統表sysobjects和syscomments,檢視employee-dep儲存過程的文字資訊的**如下:

select o.id,c.text 

from sysobjects o inner join syscomments c on o.id=c.id

where o.type='p' and o.name='employee_dep'

go ③使用alter procedure 語句對employee_dep過程進行修改,使其能夠顯示出所有男員工,並使employee_dep過程以加密方式儲存在表syscomments中,其**如下:

alter procedure employee_dep

with encryption

select employee_name,***,address,department_name

from employee e inner join department d

on e.department_id=d.department_id

where ***='男'

go執行修改後的儲存過程employee_dep,結果如下表所示。

修改後employee_dep儲存過程的執行結果

employee_name

***address

department_name

1錢大理

男東風路29號

銷售部2

郭文斌男

五一北路25號

市場部這是由於在alter procedure 語句中使用with encryption 關鍵字對儲存過程employee_dep文字進行了加密,其文字資訊顯示為null。

也可以使用系統儲存過程sp_helptext顯示儲存過程的定義(儲存在syscomments系統表內),其命令如下:sp_helptext employee_dep

結果為「物件『employee_dep』的文字已加密「。

加密後儲存過程的執行結果 id

text

1837578022

null

修改儲存過程

修改儲存過程 alter procedure owner procedure name procedure definition procedure definition 請參見create procedure 語句。alter procedure owner procedure name set ...

執行儲存過程

sql server 2012 其他版本 3 共 3 對本文的評價是有幫助 評價此主題 本主題介紹如何使用 sql server management studio 或 transact sql 在 sql server 2012 中執行儲存過程。有兩種不同方法執行儲存過程。第一種方法和最常見的方法...

Mysql修改儲存過程

alter procedure 儲存過程名 特徵 指定了儲存過程的特性,可能的取值有 contains sql 表示子程式包含 sql 語句,但不包含讀或寫資料的語句。no sql 表示子程式中不包含 sql 語句。reads sql data 表示子程式中包含讀資料的語句。modifies sql...