欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SQL Server 存儲過程返回值詳解

admin
2024年8月1日 22:8 本文熱度 347

在本文中,我們將深入探討 SQL Server 存儲過程中的返回值。在開始之前,建議閱讀我們之前的文章,了解SQL Server 存儲過程中的輸出參數(shù)

什么是 SQL Server 存儲過程的返回值?

在 SQL Server 中,每當(dāng)執(zhí)行一個(gè)存儲過程時(shí),它總是返回一個(gè)整數(shù)狀態(tài)變量,以指示狀態(tài),通常情況下,零表示成功,非零表示失敗。要親自查看這一點(diǎn),可以在 SQL Server 管理工作室的對象資源管理器中執(zhí)行任何存儲過程。

執(zhí)行步驟如下:

  1. 右鍵點(diǎn)擊并選擇執(zhí)行存儲過程。

  2. 如果存儲過程需要參數(shù),提供值并點(diǎn)擊確定。

  3. 除了你期望的結(jié)果外,存儲過程還會返回一個(gè)“返回值 = 0”。

通過這個(gè)過程,我們了解到,執(zhí)行存儲過程時(shí),它會返回一個(gè)整數(shù)狀態(tài)變量。接下來,我們將使用以下員工表來理解 SQL Server 中的存儲過程輸出參數(shù)和返回值。

-- 創(chuàng)建員工表CREATE TABLE Employee (    ID INT PRIMARY KEY,    Name VARCHAR(50),    Gender VARCHAR(50),    DOB DATETIME,    DeptID INT);
-- 使用測試數(shù)據(jù)填充員工表INSERT INTO Employee VALUES(1, '張三', '男', '1996-02-29 10:53:27.060', 1),(2, '李四', '女', '1995-05-25 10:53:27.060', 2),(3, '王五', '男', '1995-04-19 10:53:27.060', 2),(4, '趙六', '女', '1996-03-17 10:53:27.060', 3),(5, '孫七', '男', '1997-01-15 10:53:27.060', 1),(6, '周八', '女', '1995-07-12 10:53:27.060', 2),(7, '吳九', '男', '1998-08-22 10:53:27.060', 3),(8, '鄭十', '女', '1999-11-30 10:53:27.060', 1),(9, '朱十一', '男', '2000-12-01 10:53:27.060', 2),(10, '錢十二', '女', '2001-01-02 10:53:27.060', 3);

示例1: 使用輸出參數(shù)統(tǒng)計(jì)員工總數(shù)

-- 創(chuàng)建存儲過程CREATE PROCEDURE spGetTotalCountOfEmployee1@TotalCount INT OUTPUTASBEGIN    SELECT @TotalCount = COUNT(ID) FROM EmployeeEND
-- 調(diào)用存儲過程DECLARE @EmployeeTotal INTEXECUTE spGetTotalCountOfEmployee1 @EmployeeTotal OUTPUTPRINT @EmployeeTotal

示例2: 使用返回狀態(tài)統(tǒng)計(jì)員工總數(shù)

-- 創(chuàng)建存儲過程CREATE PROCEDURE spGetTotalCountOfEmployee2ASBEGIN    RETURN (SELECT COUNT(ID) FROM Employee)END

-- 調(diào)用存儲過程DECLARE @EmployeeTotal INTEXECUTE @EmployeeTotal = spGetTotalCountOfEmployee2PRINT @EmployeeTotal

示例3: 使用輸出參數(shù)根據(jù)員工ID獲取員工姓名

-- 創(chuàng)建存儲過程CREATE PROCEDURE spGetEmployeeNameById1@ID INT, @Name VARCHAR(30) OUTPUTASBEGIN    SELECT @Name = Name FROM Employee WHERE ID = @IDEND
-- 調(diào)用存儲過程DECLARE @EmployeeName VARCHAR(30)EXECUTE spGetEmployeeNameById1 3, @EmployeeName OUTPUTPRINT @EmployeeName

示例4: 嘗試使用返回狀態(tài)獲取員工姓名

-- 創(chuàng)建存儲過程CREATE PROCEDURE spGetEmployeeNameById2@ID INTASBEGIN    RETURN (SELECT Name FROM Employee WHERE ID = @ID)END
-- 調(diào)用存儲過程DECLARE @EmployeeName VARCHAR(30)EXECUTE @EmployeeName = spGetEmployeeNameById2 3PRINT @EmployeeName

執(zhí)行上述存儲過程 spGetEmployeeNameById2 時(shí),會返回錯(cuò)誤:“轉(zhuǎn)換失敗,當(dāng)嘗試將 nvarchar 值 '王五' 轉(zhuǎn)換為 int 類型時(shí)”。

SQL Server 中返回狀態(tài)值的缺點(diǎn)

  1. 不能返回多個(gè)值。

  2. 只能返回整數(shù)類型的值。

而這些限制在輸出參數(shù)中是可以被克服的。

返回狀態(tài)值與輸出參數(shù)的區(qū)別

  • 返回狀態(tài)變量:只能返回整數(shù)類型的值,用于指示存儲過程的成功或失敗。

  • 輸出參數(shù):可以返回任何數(shù)據(jù)類型的值,可以返回多個(gè)值,用于返回具體的數(shù)據(jù),如姓名、年齡、薪水等。

希望本文能幫助您更好地理解 SQL Server 存儲過程中的返回值和輸出參數(shù)。


該文章在 2024/8/2 18:30:42 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved