欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

sql存儲過程詳解

 更新時間:2014年08月06日 09:09:51   投稿:hebedich  
這一篇要總結的是存儲過程,包括存儲過程有哪幾種,如何創(chuàng)建,以及最后如何調用存儲過程。所以分為以下幾個方面進行總結。

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,然后返回這個職員的信息。

創(chuàng)建存儲過程代碼:

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作為輸入參數,然后返回該職員的信息,同時返回代碼受影響行數作為輸出參數。

創(chuàng)建存儲過程代碼:

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.

創(chuàng)建存儲過程代碼:

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;

結果:

相關文章

最新評論