MSSQL中存储过程的可选参数的定义和使用
可选参数的存在,可以极大的降低代码的重复冗余。在数据库开发中,也是如此。现在针对MSSQL中存储过程的可选参数的定义和使用进行基本的介绍,留作备忘。 #准备工作: 在db_test中建立一张测试表T_test: USE db_test; CREATE TABLE dbo.T_test ( Id INT IDE
可选参数的存在,可以极大的降低代码的重复冗余。在数据库开发中,也是如此。现在针对MSSQL中存储过程的可选参数的定义和使用进行基本的介绍,留作备忘。
#准备工作:
在db_test中建立一张测试表T_test:
USE db_test;
CREATE TABLE dbo.T_test
(
Id INT
IDENTITY(1,1) NOT NULL
,Name NVARCHAR(20)
NOT NULL
,Sex BIT
DEFAULT(0)
);
插入一些数据:
INSERT INTO dbo.T_test(Name,Sex) VALUES(N'NAME1','1') ,(N'NAME2','0') ,(N'NAME3','1') ,(N'NAME4','0');
查询测试数据:
SELECT Id,Name,Sex FROM dbo.T_test;
Id Name Sex
-------------------------------
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 ,@Sex AS BIT = 1 --DEFAULT VALUE: 1 AS BEGIN
SELECT @Name = Name FROM dbo.T_test WHERE Id = @Id AND Sex = @Sex; END GO
对存储过程进行调用:
1)不传递ID和Sex
DECLARE @Name NVARCHAR(20); EXEC dbo.up_test_get_name_by_id @Name OUT; SELECT @Name AS NAME;
NAME
-------------
NAME1
说明:
可见,当调用存储过程的时候不传递ID,则存储过程会使用(存储过程)定义时设定的ID的默认值1,Sex默认值为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值,因为没有传递进来Sex的值,故使用Sex默认值1进行SQL查询。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

crystaldiskmark是什麼軟體? -crystaldiskmark如何使用?

華為明年將推創新 MED 儲存產品:機架容量超過 10 PB,功耗低於 2 kW
