這回來介紹這個,本回就打算用最快的方式寫教學,
大概寫一寫比較常用到的東西就好,其他以後再補充
一、新增預存程序
首先在student資料表底下,有個可程式性,再底下有預序程式的目錄
點右鍵 > 新增 > 預存程序
會有以下的程式碼
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
-- Add the parameters for the stored procedure here
<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
END
GO
架構簡單地說是這樣的:
CREATE PROCEDURE storedProcedure名稱
參數宣告
AS
BEGIN
主程式
END
GO
因此可以改成這麼寫:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE 查詢學生資料
AS
BEGIN
select [id]
,[name]
,[sex]
,[class]
,[Chinese]
,[English]
,[Math]
FROM [school].[dbo].[student]
END
GO
就能產生新的stored Procedure
在想要執行的sp按右鍵,執行預存程序
它的執行指令如下
這個語法可以簡化EXEC sp名稱,執行SP但不收回傳值:
EXEC [dbo].[查詢學生資料]
二、傳入參數教學
在上個程式加入以這二行再執行:
USE [school]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[查詢學生資料]
@class char(1)
AS
BEGIN
select [id]
,[name]
,[sex]
,[class]
,[Chinese]
,[English]
,[Math]
FROM [school].[dbo].[student]
where class = @class
END
執行stored Procedure程式要傳入參數的寫法如下:
EXEC [dbo].[查詢學生資料] @class = 'A'
以下是執行後的結果:
因為篇幅(?)有限,今天就教到這邊