Sql 大容量插入后检查FK约束
我有两个大数据集(~O(1TB)),我想将它们导入我的数据库。我使用Sql 大容量插入后检查FK约束,sql,sql-server,Sql,Sql Server,我有两个大数据集(~O(1TB)),我想将它们导入我的数据库。我使用批量插入将数据导入临时表,然后使用选择和插入用数据填充实际表。这是因为我想改变一些事情的顺序,并将一些数据文件拆分成逻辑表。如果不需要此功能,我只需将批量插入直接插入到目标表中 我想检查是否已强制执行所有外键约束。如果我在导入阶段将批量插入标记为检查约束,则导入过程将减慢为爬网 是否有命令在事后执行此操作?一般来说,我对SQL Server和数据库的熟悉程度非常有限 提前谢谢 编辑: 建议阅读:Tibor Karaszi写了一篇
批量插入
将数据导入临时表,然后使用选择
和插入
用数据填充实际表。这是因为我想改变一些事情的顺序,并将一些数据文件拆分成逻辑表。如果不需要此功能,我只需将批量插入
直接插入到目标表中
我想检查是否已强制执行所有外键约束。如果我在导入阶段将批量插入标记为检查约束
,则导入过程将减慢为爬网
是否有命令在事后执行此操作?一般来说,我对SQL Server和数据库的熟悉程度非常有限
提前谢谢
编辑:
建议阅读:Tibor Karaszi写了一篇关于可信约束的伟大文章:您正在查看多少表/外键?是否考虑编写一个快速自定义查询来检查孤立行?要检查一个表:
alter table YourTable with check check constraint all
要检查所有表,请执行以下操作:
exec sp_msforeachtable 'alter table ? with check check constraint all'
这正是我现在正在做的。大约有10个表格,其中一些相互参照。我想可能有办法节省一些时间我喜欢这个答案+1,你需要知道FK在哪里无效。在那篇文章中找到一个“DBCC CHECKCONSTRAINTS()”的提示,去试试看。:)嗯,我试着用“全部检查约束改变表MyTable”并得到一个。。。“命令已成功完成。”否则会失败吗?是。如果存在冲突,则会出现类似“ALTERTABLE语句与列外键约束冲突…”的错误。