表值函数定义如下:
CREATE FUNCTION Gy_Fn_GetManInfo
(
@No char(10)
)
RETURNS
@Man TABLE
(
ManNo char(10),
ManName nvarchar(50),
age int,
Address nvarchar(100)
)
AS
BEGIN
insert into @Man(ManNo,ManName,age,Address)
select ManNo,Age,Address from Man where ManNo = @No
RETURN
END
GO
标量值函数定义如下:
CREATE FUNCTION Gy_Fn_GetManName
(
@No char(10)
)
RETURNS nvarchar(50)
AS
BEGIN
DECLARE @ManName nvarchar(50)
SELECT @ManName = ManName from Man where ManNo = @No
RETURN @ManName
END
GO
表值函数与标量值函数的调用方式不同:如果调用上面的表值函数为select * from Gy_Fn_GetManInfo('M1'),如果调用上面的标量值函数为select dbo.Gy_Fn_GetManName('M1'),一个无需加前缀,一个必须加前缀,否则报错。
以上为本人对两种函数的理解,欢迎大家指正!