Создайте триггер вставки / обновления / удаления, который обновляет таблицу Emplyoee при создании / обновлении / удалении записей в EmpContact, например (вставка):
CREATE TRIGGER [dbo].[trgCreateEmpContact] ON [dbo].[EmpContact]
FOR INSERT
AS
UPDATE dbo.Employee
SET UpdateDate=GetDate(), UpdatedBy = I.UpdatedBy
FROM Employee E
INNER JOIN Inserted I ON E.EmpID = I.EmpID
Так что вам нужно добавить UpdatedBy
столбец к вашей таблице EmpContact тоже.
Вы получаете текущего зарегистрированного пользователя следующим образом:
MembershipUser currentUser = Membership.GetUser();
GUID currentUserID = (GUID)currentUser.ProviderUserKey;
Другой (лучший) подход - создать хранимую процедуру, которая внутреннесоздает запись EmpContact и обновляет таблицу Employee в транзакции, например (не проверено):
CREATE PROCEDURE [dbo].[InsertEmpContact]
@ContactID int OUTPUT,
@Contact varchar(50) OUTPUT,
@EmpID int OUTPUT,
@UpdateDate datetime OUTPUT,
@UpdatedBy int OUTPUT,
with execute as Owner
AS
BEGIN TRANSACTION
INSERT INTO EmpContact(Contact, EmpID)
VALUES (@Contact,@EmpID)
;SELECT @ContactID=ContactID,@Contact=Contact,@EmpID=EmpID,@UpdateDate=GetDate()
FROM EmpContact WHERE (ContactID = SCOPE_IDENTITY())
;UPDATE dbo.Employee
SET UpdateDate=@UpdateDate, UpdatedBy = @UpdatedBy
WHERE EmpID = @EmpID
IF @@ERROR <> 0
BEGIN
-- Rollback the transaction
ROLLBACK
RETURN
END
COMMIT