A表,B表 当把数据插入A表的时候,A表的一个字段addr是空的,需要通过A表的type字 15
A表,B表当把数据插入A表的时候,A表的一个字段addr是空的,需要通过A表的type字段去B表跟B表的type比对,然后把B表查询出来的addname插入A表的addr...
A表,B表
当把数据插入A表的时候,A表的一个字段addr是空的,需要通过A表的type字段去B表跟B表的type比对,然后把B表查询出来的addname插入A表的addr 。触发器怎么写? 展开
当把数据插入A表的时候,A表的一个字段addr是空的,需要通过A表的type字段去B表跟B表的type比对,然后把B表查询出来的addname插入A表的addr 。触发器怎么写? 展开
展开全部
--插入测试数据
create table A
(
ID int,
name varchar(20),
ty_pe varchar(20),
addr varchar(20)
)
create table B
(
ty_pe varchar(20),
addname varchar(20)
)
insert into B (ty_pe,addname)values('A1','河南省')
insert into B (ty_pe,addname)values('A2','广西省')
insert into B (ty_pe,addname)values('A3','云南省')
insert into B (ty_pe,addname)values('A4','上海市')
insert into B (ty_pe,addname)values('A5','北京')
-------------------------------------------------
--创建触发器
IF EXISTS( SELECT NAME FROM SYSOBJECTS WHERE NAME ='TRI_INSERT' )
DROP TRIGGER TRI_INSERT
GO
CREATE TRIGGER TRI_INSERT
ON A
FOR INSERT
AS
BEGIN TRANSACTION
DECLARE @ADDNAME VARCHAR(20)
SELECT
@ADDNAME=B.addname
FROM
INSERTED I,B B
WHERE
I.ty_pe=B.ty_pe
UPDATE A
SET addr=@ADDNAME
FROM A ,INSERTED
WHERE A.ty_pe=INSERTED.ty_pe
COMMIT TRANSACTION
GO
--------------------------------
--插入数据测试
insert into A (ID,name,ty_pe)values(1,'张三','A1')
insert into A (ID,name,ty_pe)values(2,'李四','A2')
insert into A (ID,name,ty_pe)values(3,'王五','A3')
insert into A (ID,name,ty_pe)values(4,'赵六','A4')
insert into A (ID,name,ty_pe)values(5,'孙七','A5')
------------------------------------------------------
create table A
(
ID int,
name varchar(20),
ty_pe varchar(20),
addr varchar(20)
)
create table B
(
ty_pe varchar(20),
addname varchar(20)
)
insert into B (ty_pe,addname)values('A1','河南省')
insert into B (ty_pe,addname)values('A2','广西省')
insert into B (ty_pe,addname)values('A3','云南省')
insert into B (ty_pe,addname)values('A4','上海市')
insert into B (ty_pe,addname)values('A5','北京')
-------------------------------------------------
--创建触发器
IF EXISTS( SELECT NAME FROM SYSOBJECTS WHERE NAME ='TRI_INSERT' )
DROP TRIGGER TRI_INSERT
GO
CREATE TRIGGER TRI_INSERT
ON A
FOR INSERT
AS
BEGIN TRANSACTION
DECLARE @ADDNAME VARCHAR(20)
SELECT
@ADDNAME=B.addname
FROM
INSERTED I,B B
WHERE
I.ty_pe=B.ty_pe
UPDATE A
SET addr=@ADDNAME
FROM A ,INSERTED
WHERE A.ty_pe=INSERTED.ty_pe
COMMIT TRANSACTION
GO
--------------------------------
--插入数据测试
insert into A (ID,name,ty_pe)values(1,'张三','A1')
insert into A (ID,name,ty_pe)values(2,'李四','A2')
insert into A (ID,name,ty_pe)values(3,'王五','A3')
insert into A (ID,name,ty_pe)values(4,'赵六','A4')
insert into A (ID,name,ty_pe)values(5,'孙七','A5')
------------------------------------------------------
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询