存儲過程設置參數
1. 存儲過程中的參數問題
需要兩個輸入參數:
@CODE
@NAME
create proc uspSelcte
@code int,
@name varchar(20)
as
begin
select *
from student
where code=@code or name=@name
end
--------------------
使用方法:
EXEC uspSelcte '1',''
或者
EXEC uspSelcte '','張三'
2. sql存儲過程修改,設置默認參數。
select部門號,部門名稱from系統參數表where部門名稱='你們部門的名稱'
--然後
set@bm='部門號',@部門='部門名稱'
3. SQL 存儲過程中參數怎麼使用
參數定義
單個參數
1>
CREATE
PROCEDURE
HelloWorld1
2>
@UserName
VARCHAR(10)
3>
AS
4>
BEGIN
5>
PRINT
'Hello'
+
@UserName
+
'!';
6>
END;
7>
go
1>
DECLARE
@RC
int;
2>
EXECUTE
@RC
=
HelloWorld1
'Edward'
;
3>
PRINT
@RC;
4>
go
HelloEdward!
0
IN、OUT、IN
OUT
註:
SQL
Server
的
OUTPUT
需要寫在變數數據類型後面。
SQL
Server
沒有
IN
OUT
關鍵字
OUTPUT
已經相當於
IN
OUT
了。
1>
CREATE
PROCEDURE
HelloWorld2
2>
@UserName
VARCHAR(10),
3>
@OutVal
VARCHAR(10)
OUTPUT,
4>
@InoutVal
VARCHAR(10)
OUTPUT
5>
AS
6>
BEGIN
7>
PRINT
'Hello
'
+
@UserName
+
@InoutVal
+
'!';
8>
SET
@OutVal
=
'A';
9>
SET
@InoutVal
=
'B';
10>
END;
11>
go
1>
2>
DECLARE
@RC
int,
@OutVal
VARCHAR(10),
@InoutVal
VARCHAR(10);
3>
BEGIN
4>
SET
@InoutVal
=
'~Hi~';
5>
EXECUTE
@RC
=
HelloWorld2
'Edward',
@OutVal
OUTPUT,
@InoutVal
OUTPUT;
6>
PRINT
@RC;
7>
PRINT
'@OutVal='
+
@OutVal;
8>
PRINT
'@InoutVal='
+
@InoutVal;
9>
END
10>
go
Hello
Edward~Hi~!
0
@OutVal=A
@InoutVal=B
參數的默認值
1>
CREATE
PROCEDURE
HelloWorld3
2>
@UserName
VARCHAR(10),
3>
@Val1
VARCHAR(20)
=
'
Good
Moning,',
4>
@Val2
VARCHAR(20)
=
'
Nice
to
Meet
you'
5>
AS
6>
BEGIN
7>
PRINT
'Hello
'
+
@UserName
+
@Val1
+
@Val2
+
'!';
8>
END;
9>
go
1>
2>
DECLARE
@RC
int;
3>
BEGIN
4>
EXECUTE
@RC
=
HelloWorld3
'Edward';
5>
PRINT
@RC;
6>
EXECUTE
@RC
=
HelloWorld3
'Edward',
'
Good
Night,';
7>
PRINT
@RC;
8>
EXECUTE
@RC
=
HelloWorld3
'Edward',
'
Good
Night,',
'
Bye';
9>
PRINT
@RC;
10>
END
11>
go
Hello
Edward
Good
Moning,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Bye!
0
指定參數名稱調用
此部分使用
「參數默認值」那一小節的存儲過程。
用於說明當最後2個參數是有默認的時候,如何跳過中間那個。
1>
DECLARE
@RC
int;
2>
BEGIN
3>
EXECUTE
@RC
=
HelloWorld3
'Edward';
4>
PRINT
@RC;
5>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val1='
Good
Night,';
6>
PRINT
@RC;
7>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val1='
Good
Night,',
@Val2='
Bye';
8>
PRINT
@RC;
9>
EXECUTE
@RC
=
HelloWorld3
'Edward',
@Val2='
HeiHei
';
10>
PRINT
@RC;
11>
END
12>
go
Hello
Edward
Good
Moning,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Nice
to
Meet
you!
0
Hello
Edward
Good
Night,
Bye!
0
Hello
Edward
Good
Moning,
HeiHei
!
0
4. DB2中建立存儲過程的詳細參數和語法
DECLARE CHOICE2 CURSOR WITH RETURN TO CALLER FOR --聲明游標 CHOICE2
SELECT COMPANYID,DEPTID,SEQID,SUBMITTIME,SUBMITDATE,
B.GRADEDESC HYEAR,PRODUCTID,PRODUCTCODE,PRODUCTDESC,
A.GRADEID,PRICE,SFZDPY,LQUANT,MQUANT,MCQUANT,LCQUANT,
UQUANT,OTHQUANT1,OTHQUANT2,OTHQUANT3,OTHQUANT4,EMP1,EMP2,STATUS,A.REMARK,
DECIMAL(ABS(MCQUANT-MQUANT)/NULLIF(MQUANT,0)*100,10,2)TAG
FROM T_SUPPLY_PPB_HY A
LEFT JOIN T_SUPPLY_GRADATION B ON A.GRADEID=B.GRADEID
WHERE HYEAR=TO_CHAR(P_NF)||P_BN
ORDER BY B.GRADEID,PRODUCTCODE,A.PRICE;
--1.DECIMAL(P,S)十進制數,小數點位置由數字的精度(P)和小數位(S)確定。
-- 精度是數字的總位數,必須小於32。小數位是小數部分數字的位數且總是小於或等於精度值。
-- 如果未指定精度和小數位,則十進制值的預設精度為5,預設小數位為0。
--2.語法:NULLIF ( expression , expression )
-- expression:(常量、列名、函數、子查詢或算術運算符、按位運算符以及字元串運算符的任意組)
-- 如果兩個表達式不相等,NULLIF 返回第一個 expression 的值。如果相等,NULLIF 返回第一個 expression 類型的空值。如果兩個表達式相等且結果表達式為 NULL,NULLIF 等價於 CASE 的搜索函數。
5. SQL 存儲過程輸入參數怎麼設置可為空
你可以在觸發器上調用存儲過程,
觸發器中有兩個臨時表inserted
和deleted
,這兩個表的表結構和創建觸發器的表是一樣的,
inserted表存的是當前插入或更新後的值,
deleted表存的是當前刪除或修改前的值.
你可以利用以上兩個臨時表的值來獲得你要的參數值,然後調用時傳入存儲過程
另外你也可以直接在觸發器中操作,不用存儲過程。
6. 調用oracle存儲過程時如何在程序中設置存儲過程參數大小
在c++中用ado和bde的存儲過程組件都可以調用存儲過程呀。
設置一下存儲過程的名字,參數的類型和長度,為每個參數賦值,調用即可。
frmData->
spOracle->
Parameters->
ParamByName(
"dhhm
")->
Value
=
phoneNo;
frmData->
spOracle->
ExecProc();
希望能夠幫助到你啊
7. C#三層中使用SqlParameter數組設置和獲得存儲過程參數
SqlParameter inputParam = new SqlParameter("name", value);
SqlParameter outputParam = new SqlParameter("name", value);
outputParam.Direction = ParameterDirection.Output;
sqlCmd.addParameter(input);
sqlCmd.addParameter(output);
sqlCmd.executeNonQuery("storedProcName");
object outputValue = outputParam.Value;
更詳細的請看msdn的技術資源庫里的類庫參考,上面都有。
8. SQL存儲過程,寫參數
CREATE DEFINER=`root`@`%` PROCEDURE `Procere`( IN beginThisMonth varchar(200),IN endThisMonth varchar(200))
BEGIN
SELECT
*
FROM
ceshi
WHERE
shijian between @beginThisMonth and @endThisMonth;
END
設置兩個儲存過程的參數,
IN
OUT
INOUT
這幾個關鍵詞

9. sqlserver存儲過程如何建立可選參數
SQL Server 中的存儲過程(Procere),帶入參數和出參數。
存儲過程(Procere)-基本創建與操作。
--一、無參存儲過程
create procere PTitles
as
select * from titles
go
--2,執行存儲過程
execute PTitles
go
--3,移除存儲過程
--drop procere PTitles
go
5.存儲過程(Procere)-帶入參。
create proc P_Titles_ByType
@type char(12) --入參
as
select * from titles where type=@type
go
--,執行帶參數的存儲過程
--a)方式一
exec P_Titles_ByType @type='business'
go
--b)方式二
exec P_Titles_ByType 'business'
6.存儲過程(Procere)-帶入參和出參。
create proc P_Titles_ByTypeAndPrice
@type char(12), --入參
@price money --入參
as begin
select * from titles
where type=@type and price>@price
end
10. 存儲過程輸入參數設置默認值問題
問題補充:如果例中,動作=「入庫」 ; 日期 的默認值應該設置多少? 你在存儲過程里,給這個參數一個默認值就ok了。 這里應該有三個參數吧,
