请问这样的数据怎么修改???

moudgeenp 2005-12-25 02:44:12
情况如下:
有三个关联表
A(其中no为主键)
NO NAME SERVER IPADDR MASNO
1 BAISE DATASERVER 192.168.0.1 1

B1(其中OUTNO为外键与表A的NO字段相关联)
NUM STATION TERMINAL OUTNO
1 NANNING PINGGUO 1
2 TIANYANG TINGDONG 1
3 JINXI NAPO 1

B2(其中OUTNO为外键与表A的NO字段相关联)
NUM START TERMINAL OUTNO
1 XILIN LONGLIN 1
2 LEYE LINYUN 1
3 ZHAOQING JINLIN 1

请问我要更改表A字段NO的值,那么怎么才能使关联表B1,B2的字段OUTNO随着NO更改而更改?
如表A的NO字段值改为10,那么表B1,B2的所有记录的字段OUTNO的值都改为10
...全文
79 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
moudgeenp 2005-12-25
  • 打赏
  • 举报
回复
hpym365(君子爱财,取之有道) ,你的的方法不知道怎么实现,因为我定义外键时没有定义及连更新,你不可能要我再把表在修改吧,再重新录入数据吧
hpym365 2005-12-25
  • 打赏
  • 举报
回复
一刀你错了 你那样会违反约束的
服务器: 消息 547,级别 16,状态 1,行 1
UPDATE 语句与 COLUMN REFERENCE 约束 'FK__b1__outno__2DDCB077' 冲突。该冲突发生于数据库 'master',表 'b1', column 'outno'。
语句已终止。
你这样方法在没有主外键约束的时候可以
用及连更新是最简单的办法

上面我说错了是及连更新
hpym365 2005-12-25
  • 打赏
  • 举报
回复
--测试数据 使用了及连删除
create table A
(NO int primary key,
name varchar(10),
server varchar(10),
ipaddr varchar(100),
masno int)
create table b1
(num int ,
station varchar(10),
terminal varchar(10),
outno int foreign key references A(NO) ON UPDATE cascade)
create table b2
(num int ,
start varchar(10),
terminal varchar(10),
outno int foreign key references A(NO) ON UPDATE cascade )
go
insert A
select 1,'BAISE','DATASERVER','192.168.0.1',1
INSERT B1
SELECT 1,'NANNING' , 'PINGGUO' ,1 UNION ALL
SELECT 2,'TIANYANG', 'TINGDONG',1 UNION ALL
SELECT 3,'JINXI' , 'NAPO' ,1
INSERT B2
SELECT 1,'XILIN','LONGLIN',1 UNION ALL
SELECT 2,'LEYE' ,'LINYUN' ,1 UNION ALL
SELECT 3,'ZHAOQING','JINLIN',1
go
update a
set no=10
GO
select * from a
select * from b1
select * from b2
lw1a2 2005-12-25
  • 打赏
  • 举报
回复
以上只是修改时的触发器,删除,插入的你可以自己写写
lw1a2 2005-12-25
  • 打赏
  • 举报
回复
触发器:

create trigger A_TR1 on A
for Update
as
if update(NO)
begin
Update B1 set OUTNO=t1.NO from inserted t1,deleted t2 where OUTNO=t2.NO
Update B2 set OUTNO=t1.NO from inserted t1,deleted t2 where OUTNO=t2.NO
end
go

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧