MSSQL中儲存過程的可選引數的定義和使用

2021-12-29 22:28:39 字數 1428 閱讀 4649

可選引數的存在,可以極大的降低**的重複冗餘。在資料庫開發中,也是如此。現在針對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...