整理 SQL Server 2008 R2 核心編程知識點:輸出參數區別、存償過程調用語法、帶游標參數的存儲過程設計模式,及常用快捷鍵。
| 關鍵字 | 對應 C# | 聲明要求 | 示例 |
|---|---|---|---|
| OUT | ref | 調用前必須聲明並初始化 | DECLARE @sum INT = 0; EXEC Proc @sum OUT; |
| OUTPUT | out | 調用前僅需聲明 | DECLARE @sum INT; EXEC Proc @sum OUTPUT; |
本質相同,
OUTPUT為 T-SQL 標準關鍵字,推薦統一使用OUTPUT。
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
-- 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;
TRY...CATCH 錯誤處理與事務嵌套。sp_executesql) 防注入最佳實踐。Columnstore Index、In-Memory OLTP 等新特性。