1 --==============================存儲過程=============================== 2 --建立存儲過程 3 CREATE PROC usp_例一 4 AS 5 SELECT * FROM 類別 6 GO 7 EXEC usp_例一 8 9 --帶參數的存儲過程 10 CREATE PROC usp_例二 11 @id int = 2 --可選:=2是指定了參數的默認值 12 AS 13 BEGIN 14 SET NOCOUNT ON; --不顯示影響行數的通知,能提升性能 15 SELECT * FROM 產品 WHERE 類別ID = @id 16 END 17 GO 18 --@id傳入默認值 19 EXEC usp_例二 20 --或者: 21 EXEC usp_例二 default 22 --@id傳入指定值 23 EXEC usp_例二 1 24 --或者: 25 EXEC usp_例二 @id=1 26 27 --存儲過程的返回值:Return 28 --Return只能返回整數值 29 --返回值必須使用一個變量來接受,直接EXEC執行是得不到返回值的! 30 CREATE PROC usp_例三 31 AS 32 DECLARE @sum int 33 SELECT @sum = sum(庫存量) FROM 產品 34 RETURN @sum 35 GO 36 DECLARE @return int 37 EXEC @return = usp_例三 38 PRINT @return 39 40 --存儲過程的返回值:Output 41 --Output能夠返回任何數據 42 --接受Output的返回值也必須用變量 43 CREATE PROC usp_例四 44 @sum int OUTPUT --指定該參數爲返回參數 45 AS 46 SELECT @sum = sum(庫存量) FROM 產品 47 GO 48 DECLARE @return int 49 EXEC usp_例四 @return OUTPUT --調用sp時,返回參數也必須寫上OUTPUT 50 PRINT @return 51 52 --查看指定存儲過程的源碼 53 EXEC sp_helptext usp_例一 54 55 --加密存儲過程 56 CREATE PROC usp_加密的存儲過程 57 WITH ENCRYPTION 58 AS 59 SELECT * FROM 類別 60 GO 61 EXEC sp_helptext usp_加密的存儲過程 62 63 --存儲過程組 64 CREATE PROC usp_查詢類別;1 --存儲過程名稱+分號+編號 65 @id int 66 AS 67 SELECT * FROM 類別 WHERE 類別ID = @id 68 GO 69 70 CREATE PROC usp_查詢類別;2 --同樣的名稱 71 @name nvarchar(50) 72 AS 73 SELECT * FROM 類別 WHERE 類別名稱 = @name 74 GO 75 76 EXEC usp_查詢類別 5 --默認執行第一個存儲過程 77 EXEC usp_查詢類別;1 5 --指定了存儲過程的編號 78 EXEC usp_查詢類別;2 點心 79 80 --刪除存儲過程 81 --若刪除存儲過程組,則組中的全部存儲過程都會被刪除 82 DROP PROC usp_查詢類別