函数调用过程出错 "Only functions and some extended stored procedures can be executed from within a function"
Function calling procedure gives error "Only functions and some extended stored procedures can be executed from within a function"
我创建了一个这样的函数:
CREATE FUNCTION [dbo].[GetAnnouncementID]()
RETURNS INT
AS
BEGIN
DECLARE @AnnouncementID int
EXEC @AnnouncementID = DB1.dbo.PROC_GetID
RETURN @AnnouncementID
END
GO
然后我尝试用select dbo.GetAnnouncementID()
获取return值,但是报错信息是:
Only functions and some extended stored procedures can be executed from within a function.
如何解决?
您不能从函数内执行存储过程。您唯一的选择是将其更改为 SP 并修改代码以调用 SP,如下所示:
CREATE procedure [dbo].[GetAnnouncementID]()
AS
BEGIN
SET NOCOUNT ON;
DECLARE @AnnouncementID int;
EXEC @AnnouncementID = DB1.dbo.PROC_GetID;
SELECT @AnnouncementID;
RETURN 0;
END
GO
我创建了一个这样的函数:
CREATE FUNCTION [dbo].[GetAnnouncementID]()
RETURNS INT
AS
BEGIN
DECLARE @AnnouncementID int
EXEC @AnnouncementID = DB1.dbo.PROC_GetID
RETURN @AnnouncementID
END
GO
然后我尝试用select dbo.GetAnnouncementID()
获取return值,但是报错信息是:
Only functions and some extended stored procedures can be executed from within a function.
如何解决?
您不能从函数内执行存储过程。您唯一的选择是将其更改为 SP 并修改代码以调用 SP,如下所示:
CREATE procedure [dbo].[GetAnnouncementID]()
AS
BEGIN
SET NOCOUNT ON;
DECLARE @AnnouncementID int;
EXEC @AnnouncementID = DB1.dbo.PROC_GetID;
SELECT @AnnouncementID;
RETURN 0;
END
GO