批量导入数据,外键该怎么处理?

Iro_ 2014-09-22 12:55:06
如果批量向一个表中导入数据,表中有外键,而且导入的数据中也包含外键这个字段,这时候该怎么处理?
如果每导入一条数据都要先查下其中外键字段的id,这样效率会不会比较低?
...全文
252 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Iro_ 2014-09-22
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
如果外键的数据不是必须在导入过程中检查的话,可以用alter table 中的 NOCHECK CONSTRAINT临时禁用外键,导入后再启用。

USE AdventureWorks2012;
  GO
  ALTER TABLE Purchasing.PurchaseOrderHeader
  NOCHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID;
  GO
如果外键约束必须在导入过程中体现,那你要先插入子表再插入主表,或者使用级联更新
嗯,明白了,谢谢
chookinwar 2014-09-22
  • 打赏
  • 举报
回复
当然效率比不检查要低
發糞塗牆 2014-09-22
  • 打赏
  • 举报
回复
如果外键的数据不是必须在导入过程中检查的话,可以用alter table 中的 NOCHECK CONSTRAINT临时禁用外键,导入后再启用。

USE AdventureWorks2012;
  GO
  ALTER TABLE Purchasing.PurchaseOrderHeader
  NOCHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID;
  GO
如果外键约束必须在导入过程中体现,那你要先插入子表再插入主表,或者使用级联更新

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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