SQL Server FUNCTION的使用
FUNCTION與STORED PROCEDURE有點像
但有很大的區別
FUNCTION比較像是數學中函數
PROCEDURE比較像制定好的工作流程
差別如下:
但有很大的區別
FUNCTION比較像是數學中函數
PROCEDURE比較像制定好的工作流程
差別如下:
- 預存程序只能獨立執行;函數可搭配各種SQL語法
- 預存程序可執行各種操作;函數原則上只能查詢資料,
無法異動資料庫,而預存程序可以 - 預存程序可以有帶入型、帶出型參數及整數的傳回值
函數只有帶入型參數及各種預先定義好的傳回型別
USE 練練 GO --純量值函數,只有一個純量值------------------------- CREATE FUNCTION 匠匠平均價() RETURNS MONEY AS BEGIN DECLARE @AvgPrice MONEY SELECT @AvgPrice =AVG(價錢) FROM 匠匠 RETURN @AvgPrice END GO SELECT dbo.匠匠平均價() SELECT *,dbo.匠匠平均價() AS 匠匠均價 FROM 巨巨 WHERE 價錢 >dbo.匠匠平均價() GO -------------------------------------------------- --資料表值函數,回傳了一個TABLE---------------------- CREATE FUNCTION 巨巨區間產品(@price1 MONEY,@price2 MONEY) RETURNS TABLE WITH SCHEMABINDING AS RETURN(SELECT 產品編號,品名,價錢 FROM dbo.巨巨 WHERE 價錢 BETWEEN @price1 AND @price2) GO SELECT * FROM 巨巨區間產品(30,50) GO
留言
張貼留言