我从查看中调用函数时遇到问题。它们都是不同的模式,所以我有这样的东西:
View [SchemaA].[ViewName]
WITH SCHEMABINDING
AS
SELECT DISTINCT
[SchemaB].[functionName](value) as 'variable'
FROM
//Several selects with joins
问题是我收到此错误:“无法架构绑定视图'SchemaA.view'。'SchemaB.functionName'不是架构绑定。”
我还尝试在对函数的调用中包含数据库名称,如下所示:
[database].[SchemaB].[functionName]
但它仍然无效。但是它返回了一个不同的错误:“无法模式绑定视图'SchemaA.view',因为名称'SchemaB.functionName'对于模式绑定无效。名称必须是两部分格式,并且对象不能引用自身。”< / em>的
对我做错了什么的想法?
由于
答案 0 :(得分:2)
您的函数应该是架构绑定的(WITH SCHEMABINDING
):
CREATE FUNCTION SchemaBinded(@INPUT INT)
RETURNS INT WITH SCHEMABINDING
BEGIN
RETURN @INPUT * 2 + 50
END
GO