MS SQL server 2008 r2无法绑定多部分标识符
试图创建一个使用表变量的sql函数。当我尝试创建函数时,它会一直抛出错误。它或者抱怨我需要声明标量变量@LocationUpdate,或者如果我使用表别名LU,它会抱怨多部分标识符lu.ID无法绑定。
有人知道我在做什么错吗?我有一个sql语句之前插入到表变量,它不会引发任何错误。我有一种感觉,我正在做一些愚蠢的事 - 显而易见,但我没有看到它。
DECLARE @LocationUpdate TABLE (
[ID] [int] NOT NULL,
[FacilityName] [nvarchar](500) NULL,
[TrialUpdateID] [int] NOT NULL,
[StatusID] [int] NULL,
[City] [nvarchar](100) NULL,
[StateID] [int] NULL,
[Zip] [nvarchar](100) NULL,
[CountryID] [int] NULL,
[ContactName] [nvarchar](500) NULL,
[ContactPhone] [nvarchar](500) NULL,
[ContactPhoneExt] [nvarchar](500) NULL,
[ContactEmail] [nvarchar](500) NULL
)
SELECT @Return =
case when l.ContactFirstName +' ' +l.ContactLastName <> @LocationUpdate.ContactName then 1 else 0 END
+ CASE WHEN l.ContactEmail <> @LocationUpdate.ContactEmail THEN 1 ELSE 0 END
+ CASE WHEN l.ContactPhone <> @LocationUpdate.ContactPhone THEN 1 ELSE 0 END
+ CASE WHEN l.StatusID <> @LocationUpdate.StatusID THEN 1 ELSE 0 END
+ CASE WHEN l.Zip <> @LocationUpdate.Zip THEN 1 ELSE 0 END,
@Cleared = ISNULL(luh.Cleared, 0)
FROM @LocationUpdate lu, Location l
LEFT JOIN LocationUpdateHistory luh ON @LocationUpdate.ID = luh.idx
WHERE l.TrialID = @TrialID
AND l.City = @LocationUpdate.City
AND l.FacilityName = @LocationUpdate.FacilityName
并且也不要混合隐式和显式连接。可能是他们尝试使用问题中提到的别名不起作用的原因。 – 2012-01-06 19:27:25
今天我已经达到了声望上限,所以,请明天再提醒我8-) – 2012-01-06 19:53:54
请复我,如果它仍然是你的意见8-) – 2012-01-07 05:32:13