【发布时间】:2014-03-09 08:31:56
【问题描述】:
我想给视图写一个触发器,VW_BANKBRANCH:
- 如果插入的行包含表中存在的
bankcode,则更新bName插入数据的银行表列 - 如果没有,请在银行表中插入行以反映新信息。
但是我的触发器不起作用..
我的桌子
CREATE TABLE bank(
code VARCHAR(30) PRIMARY KEY,
bName VARCHAR(50)
);
CREATE TABLE branch(
brNum INT PRIMARY KEY,
brName VARCHAR(50),
braddress VARCHAR(50),
bcode VARCHAR(30) REFERENCES bank(code)
);
CREATE VIEW VW_BANKBRANCH
AS
SELECT code,bname,brnum,brName
FROM bank ,branch
WHERE code=bcode
我的触发器
CREATE TRIGGER tr_VW_BANKBRANCH_INSERT ON VW_BANKBRANCH
INSTEAD OF INSERT
AS
BEGIN
DECLARE @insertedBankCode INT
@insertedbname varchar
@insertedbrnum int
@insertedbrName varchar
SELECT @insertedBankCode = code
FROM INSERTED
IF(@insertedBankCode=code)
SET code=@insertedBankCode
bname=@insertedbname
brnum=@insertedbrnum
brName=@insertedbrName
ELSE
insert(code,bname,brnum,brName)
END
【问题讨论】:
-
究竟是什么不起作用?根本不会跑?它不会产生预期的结果?不会编译? ...?
-
是的,它不会产生预期的结果
标签: sql-server tsql triggers