我创建了一个函数:
CREATE FUNCTION FindDistrictId (@param XML)
RETURNS INT
(...)
Run Code Online (Sandbox Code Playgroud)
我想在这样的存储过程中使用:
CREATE PROCEDURE UpdateDistinctID
AS
UPDATE Notices SET DistinctId = FindDistrictId(Notices.XmlContent)
WHERE DistinctId = 0
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做时,我得到'FIndDistrictId不是公认的内置函数名'.我想也许我不能这样做Set field = function()但我在这里检查了,我认为它应该工作..任何想法为什么它不是?该函数是为了我的数据库而创建的,我检查了sys.object
您需要在调用中包含函数的架构(如果这是SQL 2000或更早版本,则为所有者).默认情况下,那就是dbo.
UPDATE Notices SET DistinctId = dbo.FindDistrictId(Notices.XmlContent)
WHERE DistinctId = 0
Run Code Online (Sandbox Code Playgroud)