Как связать две таблицы, после вставки триггера в SQL Server 2008r2 - PullRequest
0 голосов
/ 30 октября 2011

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

Первая таблица

1st name | last name | userId | password | adress | email

и 2-я таблица входа в систему, которые имеют два поля

Вторая таблица

userId | password

Теперь я хочу, если я изменю значение пароля в 1-й таблице, автоматически отобразится во 2-й таблице, что запрос для этого.

Ответы [ 3 ]

1 голос
/ 30 октября 2011

пока идентификатор пользователя и пароль для второй таблицы сопоставлены как внешние ключи с первой таблицей, я думаю, вы сможете установить «каскад обновления» для строк

0 голосов
/ 30 октября 2011

вы можете сделать вот так ....

   CREATE TRIGGER trgTest ON Test
   FOR INSERT
   AS
  INSERT Test2
  (Id, value)
  SELECT Id, Value 
  FROM Inserted

или, если вы используете хранимые процедуры, вы можете легко управлять этим

  CREATE PROCEDURE sp_Insert
 @Value varchar(10)
 AS
 insert into table1 (...,...) values (@value,...)
 insert into table2 (...,...) values (@value,...)
0 голосов
/ 30 октября 2011

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

От MSDN

   INSERT INTO auditEmployeeData
     (audit_log_type,
     audit_emp_id,
     audit_emp_bankAccountNumber,
     audit_emp_salary,
     audit_emp_SSN)
     SELECT 'NEW',
        ins.emp_id,
        ins.emp_bankAccountNumber,
        ins.emp_salary,
        ins.emp_SSN
     FROM inserted ins
...