我创建了一个函数:
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
答案 0 :(得分:6)
您需要在调用中包含函数的架构(如果这是SQL 2000或更早版本,则为所有者)。默认情况下,这将是dbo
。
UPDATE Notices SET DistinctId = dbo.FindDistrictId(Notices.XmlContent)
WHERE DistinctId = 0