可選引數的存在,可以極大的降低**的重複冗餘。在資料庫開發中,也是如此。現在針對mssql中儲存過程的可選引數的定義和使用進行基本的介紹,留作備忘。
#準備工作:
在db_test中建立一張測試表t_test:
create table dbo.t_test
( id int identity(1,1)
,name nvarchar(20) not null
,*** bit default(0)
)插入一些資料:
insert into dbo.t_test(name,***)
values('name1','1')
,('name2','0')
,('name3','1')
,('name4','0');
查詢測試資料:
select id,name,***
from dbo.t_test;結果為:
id name ***
1 name1 1
2 name2 0
3 name3 1
4 name4 0
#儲存過程
建立乙個儲存過程:
if object_id('dbo.up_test_get_name_by_id','p') is not null
drop proc dbo.up_test_get_name_by_id;go
create proc dbo.up_test_get_name_by_id
@name as nvarchar(20) out
,@id as int = 1 --default value: 1
,@*** as bit = 1 --default value: 1
asbegin
select @name = name
from dbo.t_test
where id = @id
and *** = @***;
endgo對儲存過程進行呼叫:
1)不傳遞id和***
declare @name nvarchar(20);
exec dbo.up_test_get_name_by_id @name out;
select @name as name;結果為:
name
name1
說明:可見,當呼叫儲存過程的時候不傳遞id,則儲存過程會使用(儲存過程)定義時設定的id的預設值1,***預設值為1 。
2)傳遞id
declare @name nvarchar(20);
exec up_test_get_name_by_id @name out,'3';
select @name as name;結果為:
name
name3
說明:當呼叫時傳遞id,則儲存過程會用傳遞進來的id值進行sql執行。
MSSQL儲存過程
sqlserver 帶有返回值,儲存過程同時新增兩張表,並將第一張表的主鍵插入第二張表當中 2010 07 04 22 00 55 分類 sql 字型大小 訂閱 sql server 中,可以使用 scope identity identity ident current 來取得最後插入記錄的值值,...
Oracle中儲存過程
1 建立乙個儲存過程 create or replace procedure pro name parameter1 parameter2 is as begin plsql sentences pl sql語句,儲存過程功能實現的主體 exception dowith sentences 異常處理...
mysql中儲存過程
delimiter,簡單解釋下這個命令的用途,在mysql中每行命令都是用 結尾,回車後自動執行,在儲存過程中 往往不代表指令結束,馬上執行,而delimiter原本就是 的意思,因此用這個命令轉換一下 為 這樣只有收到 才認為指令結束可以執行 檢視myql中已經存在的儲存過程 show proce...