У меня есть таблица Contacts
с первичным ключом ContactID
, который является столбцом идентификации. У меня есть другая таблица, Person
, с первичным ключом PersonID
, который является внешним ключом ContactID
. Когда я вставляю запись в Person
, я хотел бы PersonID
вытащить соответствующую идентификационную информацию от ContactID
в Contact
.Обновление внешних ключей в SQLServer, например Access
В Access я просто делаю запрос, который ссылается на обе таблицы, и он заполняет столбец внешнего ключа соответствующим значением в столбце идентификации (автономера).
SELECT Person.PersonID, Person.FirstName, Person.MiddleName, Person.LastName, Contact.ContactID, Contact.EmailAddress, Contact.PhoneNumber FROM (Contact INNER JOIN Person ON Contact.ContactID = Person.PersonID);
Как мы можем добиться этого в SQLServer 2008 R2? Я программировал триггеры для обновления ключей, но кажется, что должен быть лучший способ.
Большое спасибо за помощь.
Определим запрос в моем вопросе как 'qPerson'. В Access, если бы я просто использовал 'INSERT INTO qPerson (FirstName, LastName, PhoneNumber) VALUES (« Bobort »,« Bogobin »,« N/A »)', ключи были бы автоматически заполнены. Есть ли способ для поддержания этого же простого синтаксиса в SQLServer с использованием триггеров или некоторых других встроенных средств вместо использования предложения 'OUTPUT'? – Bobort