Как связать столбцы таблицы в одной базе данных - PullRequest
0 голосов
/ 07 августа 2011

У меня есть база данных, скажем database_Employee с 2 таблицами, record и salary.Теперь в обеих таблицах есть столбец EmpId.

. Когда я обновляю (или добавляю) значение EmpId в таблице record, мне нужно получить столбец EmpId из salary.значение автоматически (то, что я добавил в EmpId из tb1).

Я использую Visual Studio 2010, .NET Framework 4.0, SQL Server Express.

Если мой вопрос неясно, дай мне знать.

Ответы [ 3 ]

1 голос
/ 07 августа 2011

Для чего-то подобного, когда вы хотите синхронизировать значения двух таблиц, вам следует подумать о триггерах. Они перейдут на уровень SQL-сервера. Поскольку, похоже, нет никаких бизнес-правил, связанных с этой синхронизацией, триггеры будут гарантировать, что данные будут скопированы из одной таблицы в другую, независимо от программы.

0 голосов
/ 07 августа 2011

Ты не должен этого делать.Если EmpId может измениться, вы должны создать новый столбец Id в record, только для базы данных.Затем у вас есть столбец внешнего ключа в salary, который ссылается на этот record.Id.Таким образом, salary не нужно EmpId.Если вы хотите получить EmpId для определенного столбца salary, вы присоединитесь к столбцу Id.Если вы хотите изменить EmpId, просто измените его на record, этого достаточно.

Это предполагает, что у вас есть веская причина, чтобы разделить таблицу.Другой вариант - объединить их в одну таблицу.

РЕДАКТИРОВАТЬ:

На основании комментария к этому ответу (я думаю, это делает вопрос совершенно другим):

Если, как вы говорите, менеджер создает строку Details и после этого HR добавляет свои данные Accounts, то нет смысла создавать строку Accounts при создании Details строка.Создайте строку, когда HR устанавливает данные счета в первый раз.

Другое решение (уже предложенное другими) - объединить две таблицы.Если между ними всегда есть отношение 1:, нет необходимости хранить данные в разных таблицах.Вы можете создавать представления, если хотите просматривать только часть данных.

Еще одно решение, наиболее близкое к тому, что вы просите (но, возможно, не лучший вариант), - это использование триггеров.Когда строка вставляется в таблицу Details, срабатывает триггер, и в таблице Accounts создается строка.

0 голосов
/ 07 августа 2011

Я не совсем уверен, чего вы хотите достичь, но:

Опция

будет включать триггер вставки / обновления / удаления в БД таблицы «запись», который, в свою очередь, изменяет значения в таблице «зарплата».

другой вариант будет использовать хранимую процедуру для обновления / вставки ... в хранимой процедуре может получить доступ к обеим таблицам при необходимости ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...