下面是一个非常简单的函数,用于按名称返回学生id。该函数正常工作,但我在使用它时遇到问题:
--function to find student id by name (works)
create function findStudent (@name nvarchar(15), @familyName nvarchar(15))
returns tinyint
as
begin
declare @id tinyint
select @id = (select teaID from Tea where teaFirstName = @name and teaLastName = @familyName)
return @id
end;
--using the function (doesn't work)
declare @id tinyint
select @id = (execute findStudent 'Arash', 'Mitooie')
print @id
1条答案
按热度按时间fdbelqdn1#
你有一个功能。不需要执行。把它插进一个
select
:也可以将其定义为存储过程。如果那样的话,我建议通过考试
@id
作为一个OUTPUT
参数并在过程中赋值。您还应该检查存储过程和存储函数之间的区别,因为您似乎混淆了这两者。最简单的情况是,存储函数返回单个值或结果集,并用于查询。存储过程不能用于查询(除了
insert
在某些特殊情况下,我不建议使用)。