sql存儲進程詳解。本站提示廣大學習愛好者:(sql存儲進程詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是sql存儲進程詳解正文
1,不帶參數的存儲進程
2,帶輸出參數的存儲進程
3,帶輸出和輸入參數的存儲進程
4,帶前往值的存儲進程
不帶參數的存儲進程
例如,以下存儲進程前往Employees表中一切人員的記載。
存儲進程代碼:
USE TSQLFundamentals2008; GO IF OBJECT_ID('usp_ProcDemoNoParam','P') IS NOT NULL DROP PROC usp_ProcDemoNoParam; GO -- 1,不帶參數 CREATE PROC usp_ProcDemoNoParam AS BEGIN SELECT * FROM HR.Employees; END GO
挪用代碼:
USE TSQLFundamentals2008; GO -- 1,不帶參數存儲進程的挪用 EXEC usp_ProcDemoNoParam;
成果:
可以看到,共前往了9筆記錄。
帶輸出參數的存儲進程
例如,該存儲進程接收輸出參數@empid,然後前往這個人員的信息。
創立存儲進程代碼:
IF OBJECT_ID('usp_ProcDemoWithInputParam','P') IS NOT NULL DROP PROC usp_ProcDemoWithInputParam; GO -- 2,帶輸出參數 CREATE PROC usp_ProcDemoWithInputParam @empid AS INT AS BEGIN SELECT * FROM HR.Employees WHERE empid= @empid; END GO
挪用:
-- 2,帶輸出參數存儲進程挪用 EXEC usp_ProcDemoWithInputParam @empid=5;
成果:
帶輸出和輸入參數的存儲進程
例如,以下存儲進程接收@empid即人員ID作為輸出參數,然後前往該人員的信息,同時前往代碼受影響行數作為輸入參數。
創立存儲進程代碼:
IF OBJECT_ID('usp_ProcDemoWithInputOutputParam','P') IS NOT NULL DROP PROC usp_ProcDemoWithInputOutputParam; GO -- 3,帶輸出和輸入參數 CREATE PROC usp_ProcDemoWithInputOutputParam @empid AS INT, @NumRowsAffected AS INT OUTPUT AS BEGIN SELECT * FROM HR.Employees WHERE empid= @empid; SET @NumRowsAffected= @@ROWCOUNT; -- 賦值,也能夠應用select賦值 END GO
挪用:
-- 3,帶輸出和輸入參數存儲進程的挪用 DECLARE @nums AS INT; EXEC usp_ProcDemoWithInputOutputParam @empid=5,@NumRowsAffected= @nums OUTPUT; SELECT @nums AS nums;
成果:
帶前往值的存儲進程
例如,以下存儲進程接收@empid即人員ID作為輸出參數,然後斷定人員表中能否存在該人員的記載,假如存在則前往1,不然前往0.
創立存儲進程代碼:
IF OBJECT_ID('usp_ProcDemoWithReturnValue','P') IS NOT NULL DROP PROC usp_ProcDemoWithReturnValue; GO -- 4,帶前往值 CREATE PROC usp_ProcDemoWithReturnValue @empid AS INT AS BEGIN IF EXISTS (SELECT * FROM HR.Employees WHERE empid=@empid) RETURN 1 ELSE RETURN 0; -- 也能夠聲明一個變量,然後前往這個變量 END GO
挪用:
-- 4,帶前往值存儲進程的挪用 DECLARE @status AS INT=0; --給默許值為0 EXEC @status= dbo.usp_ProcDemoWithReturnValue @empid = 5 -- int SELECT @status AS thestatus;
成果: