У меня есть две таблицы, одна из которых представляет некоторые данные и одну, которая связывает две части данных вместе. Первый, Redaction
, имеет три столбца; ID
, X
, Y
. Второй, LinkedRedactions
, имеет две колонки; PrimaryID
, SecondaryID
, которые являются ID
s из двух строк из Redaction
, которые связаны, и должны иметь одинаковые значения X
и Y
.SQL-Server: Обновление таблицы из другой таблицы
То, что я хочу сделать, это обновить значения X
и Y
в Redaction
для SecondaryID
с, если они уже не так же, как значения для X
и Y
для соответствующего PrimaryID
.
К сожалению, я не могу использовать TRIGGER
, так как скрипты будут работать на платформе Относительности kCura, которая их не позволяет. SQL-скрипт был бы идеальным, который будет запускаться каждые несколько секунд агентом.
Я попытался объявить временную таблицу и обновления от этого, но это дает мне ошибку
«должен объявить скалярную переменную @T»
DECLARE @T TABLE (
[ID] INT, [X] INT, [Y] INT
)
INSERT INTO @T
SELECT
[ID], [X], [Y]
FROM
[Redaction] AS R
WHERE
[ID] IN (
SELECT [PrimaryID] FROM [LinkedRedactions]
)
UPDATE
[Redaction]
SET
[X] = @T.[X], [Y] = @T.[Y]
WHERE
[Redaction].[ID] IN (
SELECT [ID] FROM @T
)
Отказ от ответственности: Это это только мой второй день SQL, поэтому будет дано более подробное описание.
Спасибо, отлично работает. Не могли бы вы дать краткое объяснение того, как это работает? – JChristen
Отличное объяснение, спасибо! – JChristen