首頁 資料庫 mysql教程 MSSQL中存储过程的可选参数的定义和使用

MSSQL中存储过程的可选参数的定义和使用

Jun 07, 2016 pm 02:50 PM
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

-------------------------------

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
,@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查询。



本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

crystaldiskmark是什麼軟體? -crystaldiskmark如何使用? crystaldiskmark是什麼軟體? -crystaldiskmark如何使用? Mar 18, 2024 pm 02:58 PM

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

foob​​ar2000怎麼下載? -foobar2000怎麼使用 foob​​ar2000怎麼下載? -foobar2000怎麼使用 Mar 18, 2024 am 10:58 AM

foob​​ar2000怎麼下載? -foobar2000怎麼使用

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

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

網易信箱大師怎麼用 網易信箱大師怎麼用 Mar 27, 2024 pm 05:32 PM

網易信箱大師怎麼用

百度網盤app怎麼用 百度網盤app怎麼用 Mar 27, 2024 pm 06:46 PM

百度網盤app怎麼用

Ubuntu安裝PHP並設定MSSQL連線的詳細指南 Ubuntu安裝PHP並設定MSSQL連線的詳細指南 Feb 29, 2024 am 11:15 AM

Ubuntu安裝PHP並設定MSSQL連線的詳細指南

教你使用 iOS 17.4「失竊裝置保護」新進階功能 教你使用 iOS 17.4「失竊裝置保護」新進階功能 Mar 10, 2024 pm 04:34 PM

教你使用 iOS 17.4「失竊裝置保護」新進階功能

BTCC教學:如何在BTCC交易所綁定使用MetaMask錢包? BTCC教學:如何在BTCC交易所綁定使用MetaMask錢包? Apr 26, 2024 am 09:40 AM

BTCC教學:如何在BTCC交易所綁定使用MetaMask錢包?

See all articles