【发布时间】:2019-01-21 21:08:21
【问题描述】:
我想将新行放入 sql-server 中 1:1 相关的表中。
如您所见,表使用相同的主键相互引用。这就是问题所在——我知道用两个INSERT 调用放置数据会抛出一个错误,说我违反了PK 约束。有没有办法在代码中执行此操作?我想创建一个存储过程,用于添加“初级产品”(SUROWCE)并对应于“库存”(STAN)中的记录。
我的代码尝试:
INSERT INTO STAN VALUES(25, 5, 1000);
INSERT INTO SUROWCE VALUES(25, 'wood');
Msg 547, Level 16, State 0, Line 4
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_STAN_SUROWCE". The conflict occurred in database "TestBazyDanych", table "dbo.SUROWCE", column 'ID_SUROWCA'.
【问题讨论】:
-
听起来你想要一个
AFTER INSERT触发器。 -
从您发布的表格来看,这里有两个表格似乎没有必要。第二个表只不过是 STAN 中的一个 nvarchar(50)。为什么让它比它需要的更复杂?当然,有时单独的表是有意义的,但这似乎不是其中之一。
标签: sql-server tsql sql-insert shared-primary-key