首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

SQL Server 數據庫筆記:輸出參數、存儲過程調用與游標應用

     編輯:DB2 教學

SQL Server 數據庫筆記:輸出參數、存儲過程調用與游標應用

整理 SQL Server 2008 R2 核心編程知識點:輸出參數區別、存償過程調用語法、帶游標參數的存儲過程設計模式,及常用快捷鍵。

1. 輸出參數:OUT vs OUTPUT

關鍵字對應 C#聲明要求示例
OUTref調用前必須聲明並初始化DECLARE @sum INT = 0; EXEC Proc @sum OUT;
OUTPUTout調用前僅需聲明DECLARE @sum INT; EXEC Proc @sum OUTPUT;

本質相同,OUTPUT 為 T-SQL 標準關鍵字,推薦統一使用 OUTPUT。

2. 執行帶輸出參數的存儲過程

CREATE PROCEDURE TestOutput
    @param1 INT,
    @result INT OUTPUT
AS
BEGIN
    SET @result = @param1 * 2;
END
GO

-- 調用
DECLARE @mysum INT;
EXEC TestOutput 10, @mysum OUTPUT;
PRINT @mysum;  -- 20

3. 帶游標參數的存儲過程設計模式

-- 1. 定義返回游標的存儲過程
CREATE PROCEDURE GetCursor
    @cursor CURSOR VARYING OUTPUT
AS
BEGIN
    SET @cursor = CURSOR FORWARD_ONLY STATIC FOR
        SELECT id, name FROM Users WHERE status = 1;
    OPEN @cursor;
END
GO

-- 2. 調用端接收游標
DECLARE @myCursor CURSOR;
EXEC GetCursor @myCursor OUTPUT;

-- 3. 遍歷游標
FETCH NEXT FROM @myCursor INTO @id, @name;
WHILE @@FETCH_STATUS = 0
BEGIN
    PRINT @name;
    FETCH NEXT FROM @myCursor INTO @id, @name;
END
CLOSE @myCursor;
DEALLOCATE @myCursor;

4. 常用快捷鍵 (SSMS)

  • Shift + Home:光標在行尾,選取整行。
  • Shift + End:光標在行首,選取整行。
  • Ctrl + K, Ctrl + C:註釋選中行。
  • Ctrl + K, Ctrl + U:取消註釋。

5. 待補充項目

  1. 熟悉數據庫相關操作(備份/還原/索引維護/統計信息更新)。
  2. 深入理解 TRY...CATCH 錯誤處理與事務嵌套。
  3. 掌握動態 SQL (sp_executesql) 防注入最佳實踐。
  4. 研究 Columnstore Index、In-Memory OLTP 等新特性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved