Sql server 函数调用过程给出错误“;只有函数和一些扩展存储过程才能从函数中执行;
我创建了如下函数:Sql server 函数调用过程给出错误“;只有函数和一些扩展存储过程才能从函数中执行;,sql-server,Sql Server,我创建了如下函数: CREATE FUNCTION [dbo].[GetAnnouncementID]() RETURNS INT AS BEGIN DECLARE @AnnouncementID int EXEC @AnnouncementID = DB1.dbo.PROC_GetID RETURN @AnnouncementID END GO 然后我尝试使用select dbo.GetAnnouncementID()获取返回值,但错误消息是: 只有函数和一些扩
CREATE FUNCTION [dbo].[GetAnnouncementID]()
RETURNS INT
AS
BEGIN
DECLARE @AnnouncementID int
EXEC @AnnouncementID = DB1.dbo.PROC_GetID
RETURN @AnnouncementID
END
GO
然后我尝试使用select dbo.GetAnnouncementID()
获取返回值,但错误消息是:
只有函数和一些扩展存储过程才能从函数中执行
如何修复它?不能从函数中执行存储过程。您唯一的选择是将其更改为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
不能从函数中执行存储过程。您唯一的选择是将其更改为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
无法在函数内执行存储过程无法在函数内执行存储过程function@Burrell我必须使用函数,而不是过程,因为我在merge中使用了值。您不能从函数中调用SP-除了更改方法之外,没有其他方法可以解决此问题。您可以将SP的结果返回到临时表中,然后将其合并?我希望您不要使用带有merge@Rhaegal的函数,除非您有很好的理由。@Burrell我必须使用函数,而不是过程,bucasue我在merge中使用这个值。你不能从函数中调用SP——除了改变你的方法之外,没有别的办法。您可以将SP的结果返回到临时表中,然后将其合并?我希望您不要使用带有merge@Rhaegal的函数,除非您有很好的理由。