Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 大容量插入后检查FK约束_Sql_Sql Server - Fatal编程技术网

Sql 大容量插入后检查FK约束

Sql 大容量插入后检查FK约束,sql,sql-server,Sql,Sql Server,我有两个大数据集(~O(1TB)),我想将它们导入我的数据库。我使用批量插入将数据导入临时表,然后使用选择和插入用数据填充实际表。这是因为我想改变一些事情的顺序,并将一些数据文件拆分成逻辑表。如果不需要此功能,我只需将批量插入直接插入到目标表中 我想检查是否已强制执行所有外键约束。如果我在导入阶段将批量插入标记为检查约束,则导入过程将减慢为爬网 是否有命令在事后执行此操作?一般来说,我对SQL Server和数据库的熟悉程度非常有限 提前谢谢 编辑: 建议阅读:Tibor Karaszi写了一篇

我有两个大数据集(~O(1TB)),我想将它们导入我的数据库。我使用
批量插入
将数据导入临时表,然后使用
选择
插入
用数据填充实际表。这是因为我想改变一些事情的顺序,并将一些数据文件拆分成逻辑表。如果不需要此功能,我只需将
批量插入
直接插入到目标表中

我想检查是否已强制执行所有外键约束。如果我在导入阶段将
批量插入标记为
检查约束
,则导入过程将减慢为爬网

是否有命令在事后执行此操作?一般来说,我对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语句与列外键约束冲突…”的错误。