程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> sql存儲進程詳解

sql存儲進程詳解

編輯:MSSQL

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;

成果:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved