使用标量函数更新的问题

时间:2010-12-09 14:22:04

标签: sql-server

我创建了一个函数:

CREATE FUNCTION FindDistrictId (@param XML)
RETURNS INT
(...)

我想在这样的存储过程中使用:

CREATE PROCEDURE UpdateDistinctID
AS  
    UPDATE Notices SET DistinctId = FindDistrictId(Notices.XmlContent)
    WHERE DistinctId = 0

当我尝试这样做时,我得到'FIndDistrictId不是公认的内置函数名'。我想也许我不能做Set field = function()然后我检查了here我认为它应该有效......任何想法为什么不是?该函数是为我的数据库创建的,我检查了sys.object

1 个答案:

答案 0 :(得分:6)

您需要在调用中包含函数的架构(如果这是SQL 2000或更早版本,则为所有者)。默认情况下,这将是dbo

UPDATE Notices SET DistinctId = dbo.FindDistrictId(Notices.XmlContent)
WHERE DistinctId = 0