存儲參數怎麼寫
㈠ mysql存儲過程傳多個參數,但並不是所有參數全輸入,這要怎麼寫,
mysql> DELIMITER //
mysql> CREATE PROCEDURE HelloWorld2(
-> IN vUserName VARCHAR(10),
-> OUT vOutValue VARCHAR(10),
-> INOUT vInOutValue VARCHAR(10))
-> BEGIN
-> SELECT CONCAT('Hello ', vUserName);
-> SET vOutValue = 'A';
-> SET vInOutValue = 'B';
-> END//
Query OK, 0 rows affected (0.00 sec)
mysql> call HelloWorld2('Edward', @a, @b)//
+-----------------------------+
| CONCAT('Hello ', vUserName) |
㈡ mysql存儲過程,參數默認值如何寫法
以下只是模啟老個例子
CREATE procere test
@n1 char(10),
@n2 char(10),
@n3 char(10),
@n4 char(10),
@n5 char(10),
@n6 char(10),
@n7 char(10),
@n8 datetime,
@n9 datetime,
@n10 int
as
select * --------這旁吵部分請將傳入的參旦升數帶入查詢的條件中
from table1 t1,table2 t2,table3 t3
where deldate between @n8 and @n9
and t1.ponum = t2.ponum
and t2.partnum = t3.partnum
and t3.layer =@n1
GO
㈢ 存儲過程的參數類型哪幾種
存儲過程共有IN、OUT、INOUT三種參數類型,格式如下:CREATEPROCEDURE(IN|OUT|INOUT參數名數據類型...)存儲過程可以沒有參數,但如果在使用過程需要用到參數,需按上面的格式進行定義。
第一項:IN|OUT|INOUT,表示參數的類型,選擇其中的一種即可;第二項:參數名,表示參數的名稱;第三項:數據類型,表示這個參數的數據類型,如int、float、double、varcahr等;第四項:「…」,表示參數可以定義多個,如果有多個參數時按前三項的格式定義即可,每個參數間用英文狀態下的逗號「
㈣ mysql的存儲過程帶參數的怎麼寫
以下代碼運行通過:
delimiter$$;
createprocerelucia_proc16(countint)
begin
DECLAREname_procVARCHAR(20)CHARACTERSETutf8;
DECLAREsex_procVARCHAR(4)CHARACTERSETutf8;
DECLAREage_procINT(10);
DECLAREclass_procVARCHAR(20)CHARACTERSETutf8;
DECLAREAddr_procVARCHAR(50)CHARACTERSETutf8;
DECLAREiINT;
seti=1;
setsex_proc='女';
setage_proc=20;
setclass_proc='山治班';
setAddr_proc='北京市朝陽區';
whilei<countdo
setname_proc=CONCAT('露西亞',i);
insertintostudents(Name,Sex,age,class,Addr)values(name_proc,sex_proc,age_proc,class_proc,Addr_proc);
seti=i+1;
endwhile;
end
$$;
delimiter;
calllucia_proc16(500);
運行效果:
㈤ SQL一個帶參數的存儲過程寫法
你的這個做法沒有意義,一般存儲過程主要是針對sql語句執行效率低和數據完整性等來說的,你用這種方法就單單為了查詢一個表中的TOP信息,這樣與存儲過程的有點恰恰相反,因為這個方法實現存儲過程中取出你所要的信息,同是也能用同樣的方法更簡便的從表中取出你要的信息
㈥ 帶參數的存儲過程如何去寫誰給舉個例子
寫帶有參數存儲過程應該是sql資料庫的問題:
先建立一個表,並添加一些數據來進行演示:
create
table
t_student(
id
int
not
null,
name
nvarchar
(10)
null,
age
tinyint
null,
school
nvarchar(20)
null,
class
nvarchar(10)
null,
score
float
null,
constraint
[pk_student_id]
primary
key
clustered(id)
)
go
insert
into
t_student
values(1,'張小紅',8,'育才小學','一班',92)
insert
into
t_student
values(2,'王麗麗',8,'育才小學','一班',90)
insert
into
t_student
values(3,'張燕',7,'雲華小學','二班',86)
insert
into
t_student
values(4,'劉華',6,'雲華小學','二班',85)
一、exec
exec命令可以執行一個存儲過程也可以執行一個動態sql語句。先來看看怎麼執行存儲過程:
新建一個存儲過程
sp_getstudent
,返回
成績大於90
分的學生:
create
procere
[dbo].[sp_getstudent]
@score
float,
@nums
int
output
as
begin
set
nocount
on;
select
*
from
t_student
where
score
>=@score
select
@nums=count(1)
from
t_student
where
score
>=@score
if(@nums>0)
return
1
else
return
0
end
go
該存儲過程涉及了
查詢操作、返回值和輸出參數,我們來看用exec
命令如何調用:
declare
@return_value
int,
@outnums
int
exec
@return_value
=
[dbo].[sp_getstudent]
@score
=
90,
@nums
=
@outnums
output
select
@outnums
as
n'大於90分的人數'
select
'返回值'
=
@return_value
go
執行結果:
我們發現exec
執行存儲過程和我們平時程序執行一個方法是幾乎一樣的,返回值參數
直接就可以等於存儲過程的執行後的返回值,輸出參數
在後面需要增加
output
關鍵字。