이 작업을 수행해야합니다.
표 및보기 정의.
CREATE TABLE Customer
(ID int,
FName varchar(200),
SName varchar(200),
RoleID int);
CREATE TABLE CustomerRole
(RID int,
Name varchar(100));
CREATE VIEW ViewCustomer AS
SELECT *
FROM Customer JOIN CustomerRole on RoleID = RID;
트리거 정의.
CREATE TRIGGER ViewCustomerTrigger ON ViewCustomer
INSTEAD OF UPDATE
AS
BEGIN
SET NOCOUNT ON
UPDATE Customer
SET FName = I.FName,
SName = CASE I.FName WHEN 'Peter' THEN 'Smith' ELSE I.SName END,
RoleID = I.RoleID
FROM INSERTED I JOIN Customer C ON I.ID = C.ID
UPDATE CustomerRole
SET Name = I.Name
FROM INSERTED I JOIN CustomerRole R ON I.RID = R.RID
END
GO
샘플 데이터
INSERT INTO Customer (ID, FName, SName, RoleID)
VALUES (1, 'John', 'Wayne', 1);
INSERT INTO Customer (ID, FName, SName, RoleID)
VALUES (2, 'Jack', 'Jackson', 1);
INSERT INTO CustomerRole (RID, Name)
VALUES (1, 'Manager');
이 업데이트는 트리거가 SNAME에 '스미스'
UPDATE ViewCustomer
SET FName = 'Peter'
WHERE ID = 1
Here 그것을위한 SQLFiddle 인을 업데이트하게됩니다.
지금까지 시도한 것은 무엇이고 어떤 특정 문제가 있습니까? 보기에서 트리거를 만드는 방법에 대한 [설명서] (http://msdn.microsoft.com/en-us/library/ms189799(v=sql.100).aspx)를 읽었습니까? – Pondlife
안녕 Pondlife, 내가 시도한 코드로 내 질문을 업데이트했지만 내보기 'ViewCustomer'을 찾을 수 있다고 말하는 오류가 표시됩니다. " 'ViewCustomer'개체가 없거나이 작업에 유효하지 않습니다." – Annoscia
'ViewCustomer'보기를 보여줄 수 있습니까? – Parado