sql - 暂时关闭约束 (MS SQL)

标签 sql sql-server sql-server-2005 constraints entity-relationship

我正在寻找一种方法来暂时关闭所有数据库的约束(例如表关系)。

我需要将一个数据库的表复制(使用 INSERT)到另一个数据库。 我知道我可以通过按正确的顺序执行命令来实现这一点(不破坏关系)。

但是如果我可以暂时关闭检查约束并在操作完成后重新打开它会更容易。

这可能吗?

最佳答案

-- Disable the constraints on a table called tableName:
ALTER TABLE tableName NOCHECK CONSTRAINT ALL

-- Re-enable the constraints on a table called tableName:
ALTER TABLE tableName WITH CHECK CHECK CONSTRAINT ALL
---------------------------------------------------------

-- Disable constraints for all tables in the database:
EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'

-- Re-enable constraints for all tables in the database:
EXEC sp_msforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL'
---------------------------------------------------------

关于sql - 暂时关闭约束 (MS SQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/737115/

相关文章:

mysql - 在 mysql 中使用 IN 获取结果时添加列

php - 自动增加员工ID

mysql - 当所有 child 都满足某些标准时更新 parent ?

sql - 从最小和最大纬度/经度创建多边形(矩形)

sql - 如何将 Sql Server 数据库移植到 MySQL?

algorithm - "Log(x,y)"在sql server 2005中怎么办

sql-server-2005 - SSAS 维度源表已更改 - 如何将更改传播到分析服务器?

sql-server-2005 - MS SQL Server 2005 sp_stored_procedures

mysql - SQL语句忽略where参数

sql - t-sql 查询 : retrieve latest row approaches