在父表与子表之间定义了主键与外键的约束,
用VB.net中insert时报错了。
是不是用触发器instead of insert可解决这样的问题?
因为在这里“INSERT 语句与 FOREIGN KEY 约束的冲突”是指insert时同时向父表和子表添加内容,
父表主键与子表外键对应的记录还没产生,所以错误。
好像是在insert之前,通过触发器要求先insert父表的内容,再insert子表的内容就行了。
如果我以上的理解是正确的,那么代码应该怎样写呢?
环境:SQL Server 2008
触发器instead of insert是否能解决INSERT 语句与 FOREIGN KEY 约束的冲突?
答案:2 悬赏:40 手机版
解决时间 2021-03-04 01:45
- 提问者网友:蔚蓝的太阳
- 2021-03-03 01:16
最佳答案
- 五星知识达人网友:平生事
- 2021-03-03 02:46
楼主理解正确.
====
create trigger myinsert on table1
insert of insert
as
declare @pkid nvarchar(20) --取子表中的外键值
insert into 主表 values @pkid --先插入主表
insert into 子表 ( select * from inserted) --再插入子表
======
以上是示意代码,仅供参考.
楼主需要稍微改改表名,列名.
====
create trigger myinsert on table1
insert of insert
as
declare @pkid nvarchar(20) --取子表中的外键值
insert into 主表 values @pkid --先插入主表
insert into 子表 ( select * from inserted) --再插入子表
======
以上是示意代码,仅供参考.
楼主需要稍微改改表名,列名.
全部回答
- 1楼网友:山河有幸埋战骨
- 2021-03-03 04:06
也许是的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯