2010-04-20 49 views
23

我正在用这段代码来解决问题。如何调用存储过程中的标量函数

DECLARE @root hierarchyid 
DECLARE @lastchild hierarchyid 
SELECT @root = NodeHierarchyID FROM NodeHierarchy WHERE ID = 1 
SET @lastchild = getlastchild(@root) 

它说它不识别getlastchild函数。我在这里做错了什么?

回答

44

尝试包括架构ID,如

@lastchild = dbo.getlastchild(@root) 
+16

+1你**不能**调用在SQL Server 2008用户定义的函数,而无需使用现在的模式 – 2010-04-20 17:20:01

+0

谢谢you..It工作 – Luke101 2010-04-20 23:07:48

+0

但是,不要忘记“SET”,例如'SET @lastchild = ...' – STLDeveloper 2016-03-11 16:37:04

3

尝试

set @lastchild = dbo.getlastchild(@root) 
11

使用

set @lastchild = dbo.getlastchild(@root) 

CREATE FUNCTION

使用标量表达式的标量值函数 ,包括计算列的 和CHECK 约束定义。 当调用标量函数 时,至少使用 函数的两部分名称。

2

尝试:

SELECT * FROM dbo.function(@parameters)