SQL2000自定义函数问题?
以下是在网上找到的,但我的SQL2000在查询分析器上,是错误的,位置在红色字那里,我在网上找了很多,发现有点不同,有的写RETURNs,有的没S,我把S加上去了,就不报错了。难道是别人写少个个S?还是什么原因?---******************************************************************
CREATE FUNCTION dbo.MyFunc
(
@param1 INT,
@param2 INT
)
RETURN INT
AS
BEGIN
DECLARE @MaxValue INT
IF(@param1 < @param2)
SET @MaxValue = @param2
ELSE
SET @MaxValue = @param1
RETURN @MaxValue
END
--其中内嵌表值函数的示例如下:
CREATE FUNCTION dbo.GetProductListByTypeID
(
@TypeID INT
)
RETURN TABLE
AS
RETURN
(
SELECT [Name], Quantity, CutPrice, Des
FROM ProductInfo
WHERE TypeID = @TypeID
)
--其中多语句表值函数的示例如下:
CREATE FUNCTION dbo.GetManagerList
RETURN @ManagerUsers TABLE
(
userid int primary key,
username nvarchar(20) not null,
age int
)
AS
BEGIN
INSERT INTO @ManagerUsers
SELECT userid, username, age
FROM commonusers
WHERE IsManager = 1
INSERT INTO @ManagerUsers
SELECT userid, username, age
FROM sysUsers
RETURN
END
在可使用标量表达式的位置可唤醒调用标量值函数,包括计算列和 CHECK 约束定义。当唤醒调用标量值函数时,至少应使用函数的两部分名称 [database_name.]owner_name.function_name ([argument_expr][,...])
示例:
IF(dbo.MyFunc(11, 22) = 22) PRINT 'OK!'
而在使用内嵌表值函数和多语句表值函数时则没有此限制。
注意:当将内嵌表值函数或多语句表值函数返回的Table做为FROM子句中的多个进行JOIN操作的Table使用时,需要为该Table指定别名,这是必需的。
--*******************************************************