存儲過程exec參數
Ⅰ sql存儲過程參數可省略嗎 存儲過程中參數都有默認值,調用時可不可以不傳參數呢
可以,默認參數放存儲過程後面,等調用的時候,默認參數不填就可以直接運行了
Ⅱ 帶參數的存儲過程如何去寫誰給舉個例子
寫帶有參數存儲過程應該是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
關鍵字。
Ⅲ sqlserver存儲過程: Exec(@變數)在一個存儲過程中調用如何有參數返回變數查詢值
create proc proc_find_count13
@column_name varchar(20)
,@term varchar(20)
as
declare @sel varchar(500)
SET @sel='declare @count int ;set @count=(select count(*) from proct where ' + @column_name + ' like ''%'+@term+'%''); print @count;'
EXECute (@sel)
go
exec proc_find_count13 'p_name','c'
Ⅳ sql 存儲過程 怎麼傳入參數
執行帶參數的存儲過程的方法如下:
Exec sp_configure 'allow updates',1 --允許更新系統表。
exec dbo.User_ChangeObjectOwnerBatch 'OldOwner','dbo'
以上是兩個例子。
SQL Server中執行帶參數的存儲過程的方法是:
EXEC 存儲過程名字 '參數1','參數2',數值參數
EXEC 是一個關鍵字。
字元串參數使用單引號括起來,數值參數不需要使用單引號
Ⅳ SQL SERVER 2008 關於用EXEC執行存儲過程的問題
不帶 exec的執行存儲過程必須是事務的第一句
我舉個例子你就明白了
比如說我建立了一個存儲過程 procName
第一種情況:不用exec的
create table ()..
GO --注意這里的GO 表示要開始下一個事務了
procName --這里直接使用存儲過程名字 就是調用了
第二種情況:一定要使用 exec的
create table()
exec procName --你看這里,它不是作為這個事務的第一句開始的 所以要帶上exec
Ⅵ sql 中exec的意思
你去查一下sp_addextendedproperty這個存儲過程的定義嘛。exec就是執行存儲過程。
Ⅶ 在oracle中寫了一個存儲過程3個參數(2個in,1個out)怎麼運行這個 過程exec(輸入參數1,輸入參數2)報錯
請參考如下:
SET SERVEROUTPUT ON
DECLARE
emp_name employees.last_name%TYPE;
emp_sal employees.salary%TYPE;
BEGIN
query_emp(171, emp_name, emp_sal);
DBMS_OUTPUT.PUT_LINE('Name: ' || emp_name);
DBMS_OUTPUT.PUT_LINE('Salary: ' || emp_sal);
END;
VARIABLE name VARCHAR2(25)
VARIABLE sal NUMBER
EXECUTE query_emp(171, :name, :sal)
PRINT name sal
Ⅷ exec 後面跟有一個存儲過程的輸出參數,怎麼寫好
存儲過程內部也很有講究。在asp頁面上顯示返回參數,要先關閉記錄集才行
幾種ASP調用存儲過程的方法:
1 這也是最簡單的方法,兩個輸入參數,無返回值:
set connection = server.createobject("adodb.connection")
connection.open someDSN
Connection.Execute "procname varvalue1, varvalue2"
』將所有對象清為nothing,釋放資源
connection.close
set connection = nothing
2 如果要返回 Recordset 集:
set connection = server.createobject("adodb.connection")
connection.open someDSN
set rs = server.createobject("adodb.recordset")
rs.Open "Exec procname varvalue1, varvalue2",connection
』將所有對象清為nothing,釋放資源
rs.close
connection.close
set rs = nothing
set connection = nothing
Ⅸ ORACLE中如何為存儲過程傳遞參數
給你一個 傳遞參數的例子
SQL> CREATE OR REPLACE PROCEDURE HelloWorld2 (
2 p_user_name IN VARCHAR2,
3 p_out_val OUT VARCHAR2,
4 p_inout_val IN OUT VARCHAR2
5 ) AS
6 BEGIN
7 dbms_output.put_line('Hello ' || p_user_name || p_inout_val || '!');
8 p_out_val := 'A';
9 p_inout_val := 'B';
10 END HelloWorld2;
11 /
Procere created.
SQL> DECLARE
2 p_outval VARCHAR2(10);
3 p_inoutval VARCHAR2(10) := '~Hi~';
4 BEGIN
5 HelloWorld2('Edward', p_outval, p_inoutval);
6
7 dbms_output.put_line('p_outval=' || p_outval);
8 dbms_output.put_line('p_inoutval=' || p_inoutval);
9 END;
10 /
Hello Edward~Hi~!
p_outval=A
p_inoutval=B
PL/SQL procere successfully completed.
SQL>
Ⅹ sql資料庫中怎樣調用帶參數的存儲過程
1、使用SQL語句
--a)方式一
--exec存儲過程名稱參數名='值'
execP_Titles_ByType@type='business'
go
--b)方式二
--exec存儲過程名稱參數值
execP_Titles_ByType'business'
2、可視化操作
a.在資料庫中找到要執行的存儲過程
b.右擊存儲過程,在出現的菜單中選擇執行存儲過程選項
c.在新出現的對話框中,在對應的參數後面的值列填入對應的參數值
d.填寫完參數值,最後點擊確定,然後查詢結果會出現
圖-b