在数据库(sqlserver2005)中有两张表,其中一张表中有外键,我要向另一张表中插入数据,怎么弄呀

2024-11-09 17:01:05
推荐回答(5个)
回答1:

假设A表(插入), B表(有外键应该是指向A表的主键),可先插入主表,再插入副表
insert into 表A (主键字段,字段2...) values (值列表)
insert into 表B (外键字段,字段2...)values(@@IDENTITY,值2...)
----------------------------------------------------------------------------------------
这样两个语句一块执行就OK了(@@identity函数:是获取当前最后一次插入的主键ID)

回答2:

1.主表先插入数据,然后次表也就外键的表插入数据,
2.或先禁用外键约束
ALTER TABLE 表名
NOCHECK CONSTRAINT
外键约束名
插入数据
在启用约束
ALTER TABLE 表名
CHECK CONSTRAINT
外键约束名

回答3:

首先要保证外键里的数据在主表中有值,就是说你如果要在外键表中插入值,就必须确保主键表中的那个外键字段中有那个值。举个例子:假设tb_bookCatalog表(图书类别表)是主表,主键是bookCatalogID,外键是bookID,tb_book(图书表)表是外键表,此表的主键是bookID(就是tb_bookCatalog表的外键)。那么只有tb_bookCatalog表(图书类别表)的bookID里有数据了,tb_book(图书表)表如果的主键的数据就只能是tb_bookCatalog表(图书类别表)的bookID里的那些数据。如果不是,就会包主外键错误。

回答4:

直接插入就行了,遇到外键不能插入时,可以暂时不插入外键,等到那张表也填好的时候在补充这张表

回答5:

直接插入就可以。如果有外键值,若插入外键错误会提示出错,否则外键插入null值,正常插入操作即可