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