Скопируйте столбец из таблицы в другую таблицу в SQL Server 2008 R2.

Во всех моих таблицах есть столбец GateCode, который используется для целей репликации.

У меня есть таблица Configuration, в которой есть столбец GateCode, и первичные ключи всех таблиц состоят из GateCode внешнего ключа и ID, который идентичен.

Моя проблема в том, что я не хочу заполнять GateCode в каждой таблице при вставке, чтобы это поле в каждой таблице заполнялось автоматически из таблицы Configuration.

Что я должен делать?

Я использую SQL Server 2008 R2.


person JGC    schedule 09.09.2011    source источник
comment
можешь сказать мне ответ сейчас?   -  person JGC    schedule 09.09.2011
comment
@marc_s, вы могли бы описать стратегию решения проблемы, не на все нужно отвечать кодом, специфичным для поставщика.   -  person    schedule 09.09.2011


Ответы (1)


Если я правильно понимаю, вы хотите заполнить столбец GateCode для каждой таблицы в вашей базе данных значением, которое хранится в вашей таблице Configuration, когда любая новая строка вставляется в любую из таблиц - верно?

Я вижу единственный способ сделать это - иметь INSTEAD OF INSERT триггера на каждой таблице. В этом триггере вы затем считываете значение из таблицы Configuration и заполняете столбец GateCode новыми вставленными строками, так что, когда произойдет фактическое INSERT, значение будет там, а составной первичный ключ будет заполнен и NOT NULL.

person marc_s    schedule 09.09.2011