3 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
這樣:
CREATE PROCEDURE sp_add(a int, b int,out c int)
begin
set c=a+ b;
end;
調(diào)用過程:
call sp_add (1,2,@a);
select @a;
擴(kuò)展資料:
注意事項(xiàng)
存儲(chǔ)過程(stored procedure)是一組為了完成特定功能的SQL語句集合,經(jīng)編譯后存儲(chǔ)在服務(wù)器端的數(shù)據(jù)庫中,利用存儲(chǔ)過程可以加速SQL語句的執(zhí)行。
存儲(chǔ)過程分為系統(tǒng)存儲(chǔ)過程和自定義存儲(chǔ)過程。
系統(tǒng)存儲(chǔ)過程在master數(shù)據(jù)庫中,但是在其他的數(shù)據(jù)庫中可以直接調(diào)用,并且在調(diào)用時(shí)不必在存儲(chǔ)過程前加上數(shù)據(jù)庫名,因?yàn)樵趧?chuàng)建一個(gè)新數(shù)據(jù)庫時(shí),系統(tǒng)存儲(chǔ)過程在新的數(shù)據(jù)庫中會(huì)自動(dòng)創(chuàng)建。
自定義存儲(chǔ)過程,由用戶創(chuàng)建并能完成某一特定功能的存儲(chǔ)過程,存儲(chǔ)過程既可以有參數(shù)又有返回值,但是它與函數(shù)不同,存儲(chǔ)過程的返回值只是指明執(zhí)行是否成功,并不能像函數(shù)那樣被直接調(diào)用,只能利用execute來執(zhí)行存儲(chǔ)過程。
創(chuàng)建存儲(chǔ)過程
SQL Server創(chuàng)建存儲(chǔ)過程:
create procedure 過程名
@parameter 參數(shù)類型
@parameter 參數(shù)類型
。。。
as
begin
end
執(zhí)行存儲(chǔ)過程:execute 過程名

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
call sp_add();
是不是你定義的過程有問題吧,并沒有指出返回結(jié)果來
像我這樣是可以的:
CREATE PROCEDURE sp_add(a int, b int,out c int)
begin
set c=a+ b;
end;
調(diào)用過程:
call sp_add (1,2,@a);
select @a;

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
就是call sp_add().但如果你要返回值應(yīng)該用function。 procedure沒有返回值的。
添加回答
舉報(bào)