Я знаю, что существует множество тем, связанных с подобными проблемами, но ничто так не привело меня вперёд.SQL - После обновления Триггер нескольких столбцов.
Я хочу обновить таблицу в базе данных 2 тем, что было обновлено в соответствующей таблице в базе данных 1 через триггер. Они имеют одну и ту же структуру таблицы. Использование MS SQL 2008.
Там действительно нет проблем, делают это в ПОСЛЕ ВСТАВКИ триггером так же, как
INSERT INTO DB2..Table1
SELECT *
FROM inserted
WHERE column1 = @column1
Но при этом после обновления стиля
UPDATE DB2..Table1
SET column2 = @column2 --etcetera in some way
FROM DB1..Table1
WHERE column1 = @column1 --or something not important
Есть более 100 столбцов а также изменения/дополнения к столбцам таблицы (хотя DB1..Table1 и DB2..Table1 всегда будут иметь одну и ту же структуру и столбцы), поэтому установка значения для каждого столбца, который должен быть обновлен, кажется очень неудачным.
То, что я действительно хочу, чтобы написать это:
UPDATE DB2..Table1
SET DB2..Table1 = (SELECT * FROM inserted WHERE column1 = @column1) alternatively DB2..Table1 = DB1..Table1
WHERE column1 = @column1
Кроме того, я должен установить фиксированные значения для 3 из 100+ колонн. Эти три столбца будут единственной разницей между таблицей DB1 и таблицей DB2. Это также прекрасно, когда новая строка вставлена, но заставляет меня задаться вопросом, как я должен это делать в случае обновления.
Любые идеи?
Аналогичный вопрос: Update multiple columns in SQL, но я действительно надеюсь, что есть лучший способ сделать это, о котором я не думал.
Спасибо в любом случае, хотя – heen