`

SQL Server 临时禁用和启用所有外键约束

阅读更多

http://hi.baidu.com/alilamp/item/494da83ad540c8ff96f88d9f

 

SQL Server 临时禁用和启用所有外键约束

--获得禁用所有外键约束的语句
select  'ALTER TABLE ['  + b.name +  '] NOCHECK CONSTRAINT ' +  a.name +';' as  禁用约束   
from  sysobjects  a ,sysobjects  b     
where  a.xtype ='f' and  a.parent_obj = b.id


--获得启用所有外键约束的语句
select  'ALTER TABLE [' + b.name +  '] CHECK CONSTRAINT ' +  a.name +';' as  启用约束     
from  sysobjects  a ,sysobjects  b     
where  a.xtype ='f' and  a.parent_obj = b.id

 

[代码] SQL Server禁止全部约束应用到数据表1ALTERTABLEtb12NOCHECK CONSTRAINTALL3GO[代码] SQL Server解禁全部约束应用到数据表1ALTERTABLEtb12CHECKCONSTRAINTALL3

GO

SQL约束控制
 
1)禁止所有表约束的SQL 
 
select ''alter table ''+name+'' nocheck constraint all'' fromwhere type=''U'' 
 
 
2)删除所有表数据的SQL 
 
select ''TRUNCATE TABLE ''+name from sysobjects '' 
 
 
3)恢复所有表约束的SQL 
 
select ''alter table ''+name+'' check constraint all'' from type=''U'' 
 
 
4)删除某字段的约束
 
declare @name varchar(100) 
 
--DF为约束名称前缀
 
selectb.name from syscolumns a,sysobjects b where a.id=object_id(''表名'') and b.id=a.cdefault ''字段名'' and b.name like ''DF%'' 
 
--删除约束
 
alter table 表名 drop constraint @name 
 
为字段添加新默认值和约束
 
ALTER TABLE 表名 ADD CONSTRAINT @name DEFAULT (0) FOR [ 
 
 
对字段约束进行更改
 
--删除约束
 
ALTER TABLE tablename 
 
Drop CONSTRAINT 约束名
 
--修改表中已经存在的列的属性(不包括约束,但可以为主键或递增或唯一)
 
ALTER column 列名 int not null 
 
--添加列的约束
 
ALTER TABLE tablename 
 
ADD CONSTRAINT DF_tablename_列名 DEFAULT(0) FOR 列名
 
--添加范围约束
 
alter table tablename (''M'',''F''))

 

SQL 禁用开启表的所有约束 2000
--禁用所有约束
exec sp_msforeachtable "alter table ? nocheck CONSTRAINT all"
--再启用所有外键约束

exec sp_msforeachtable "alter table ? check constraint all"

2005
EXEC dbo.sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'

EXEC dbo.sp_MSforeachtable 'ALTER TABLE ? CHECK CONSTRAINT ALL'

分享到:
评论

相关推荐

    禁用启用所有外键约束.tst

    在数据库管理中,外键约束是关系...总之,禁用和启用外键约束是一项常见的数据库维护任务,但在进行操作时应遵循最佳实践,确保数据完整性和一致性。了解不同数据库系统的操作方式可以帮助我们更有效地管理数据库。

    数据库技术与应用 外键约束-A学习任务书.doc

    5. 如何在不破坏数据完整性的前提下,临时禁用和启用外键约束? 通过这个学习任务书,你将能够系统地理解外键约束,并在实际项目中灵活运用,提升你的数据管理与维护能力。记得结合实践,理论与实践相结合,才能...

    经典SQL语句大全_主外键_约束

    本文档旨在提供一系列关于SQL语言中常用操作指令的汇总,并特别聚焦于表间关系的管理上,如主键、外键和各种约束的应用。这些知识点对于数据库的设计、维护以及优化都有着重要的意义。 #### 基础概念 在进行更深入...

    数据库技术与应用 设置成绩表主键和外键约束-A学习任务书.doc

    在《数据库技术与应用》课程中,通过使用SQL Server Management Studio (SSMS) 进行实际操作,学生将能够更深入地理解和掌握如何在数据库中设置主键和外键约束。这不仅可以提高数据管理能力,也有助于理解数据库之间...

    sql server 概要

    SQL Server 是一种关系型数据库管理系统,由微软公司开发,广泛应用于企业级数据管理和分析。它提供了高效的数据存储、检索和管理功能,支持多种数据库操作、安全性控制和事务处理。以下是对SQL Server 概要的详细...

    Sql Server强制清空所有数据表中的记录.pdf

    这个命令会临时禁用表上的所有约束,以便在删除数据时不会因为外键约束而引发错误。 2. **关闭触发器**: 同样,通过`sp_MSForEachTable`执行`ALTER TABLE ? DISABLE TRIGGER ALL`,这样可以防止在删除数据时触发...

    从sqlserver到mysql数据导出后导入脚本(实测,实用)

    5. **约束处理**:外键约束在MySQL中处理方式与SQL Server略有不同,导入前可能需要暂时禁用外键检查,导入后再启用。 6. **事务管理**:为了保证数据一致性,整个迁移过程可能需要在一个大的事务中进行,一旦发生...

    SQL SERVER数据库系统中的数据完整性研究.pdf

    此外,为了提高数据完整性的效率和准确性,SQL Server还提供了约束命名、启用和禁用约束等功能。约束命名可以方便地识别和管理特定的约束;启用和禁用约束则可以在进行数据维护操作(如数据导入导出)时暂时禁用约束...

    Scripts.rar

    3. **主键和外键异常**:使用`ALTER TABLE`和`WITH NOCHECK CONSTRAINT`可以临时禁用外键约束,以便于数据修正,然后再启用它们。`UPDATE`和`DELETE`语句配合`WHERE`子句可以精准地定位并修改或删除有问题的记录。 4...

    SQL清空所有表

    此时可以考虑先禁用外键约束,再执行清空操作,最后重新启用外键约束。 - 在某些情况下,可能需要使用`DELETE`语句替代`TRUNCATE`,尤其是当表存在复杂的触发器或需要记录日志时。 #### 三、清空表的最佳实践 1. *...

    SQL Server2005知识要点

    - 添加约束:如`PRIMARY KEY`、`UNIQUE`、`DEFAULT`和`CHECK`约束,以及`FOREIGN KEY`定义外键约束。 - 删除约束:`ALTER TABLE`后跟`DROP CONSTRAINT`。 五、安全管理 - 身份验证模式:支持Windows身份验证和混合...

    用sqlserver创建数据库

    5. **外键约束**:定义与另一张表的关系。 ```sql ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo FOREIGN KEY (stuNo) REFERENCES stuInfo (stuNo); ``` #### 删除约束 如果需要删除已有的约束,可以使用`...

    一步一步从Access数据库升级到SQL数据库

    解决方法是先禁用外键约束,然后导入数据,最后重新启用外键约束。 2. **数据类型不匹配**:Access和SQL Server之间的数据类型可能存在差异,需要在迁移前进行适当的转换。 3. **错误信息“当前记录集不支持更新”**...

    SQLSEREVER测试题.doc

    7. 删除有外键关系的用户表:先禁用外键约束,然后删除表,最后启用外键约束。 8. 联合查询统计:使用LEFT JOIN和COUNT(),按lb2_id分组。 9. 文化程度统计:使用CASE语句对年龄和文化程度分组计数,计算百分比。 ...

    Sql Server中清空所有数据表中的记录

    与`DELETE`语句不同,`TRUNCATE TABLE`不会检查表之间的约束,所以它不能用于有外键约束的表,否则会导致引用完整性问题。当表中没有其他表依赖其数据时,可以使用`TRUNCATE TABLE`,因为它速度快且资源消耗小。 ...

    SQL-Server-2008数据库—创建、建表、查询语句.docx

    ### SQL Server 2008 ...以上介绍了如何在 SQL Server 2008 中创建数据库、数据表以及执行基本的数据查询操作,并对数据完整性和约束的概念进行了简要说明。这些基础知识对于管理和操作 SQL Server 数据库至关重要。

    数据库设计和自动安装工具BDB V2.2(for Oracle/MS SQLServer/MySQL/Access/SQLAnywhere/Sybase)

    11、2007.11.28 Oracle、MySQL下导入数据增加禁用、重新启用外键约束处理。 12、2007.11.28 更正MySQL下处理导入日期类型字段数据问题。 13、2007.11.28 更正SQLServer下处理sql_variant、...

    数据库原理及应用实验五(数据完整性和安全性)

    实验中使用Transact-SQL语句执行完整性约束的添加、删除、启用和禁用操作,如为Sno字段添加CHECK约束,确保学号格式正确;为Birth字段添加约束,确保生日早于入学日期;以及通过ALTER TABLE命令更改字段允许空值状态...

    SQL Server 更改DB的Collation

    此外,如果你的数据库中存在非空约束、外键或者触发器,那么在执行`ALTER DATABASE`之前,必须先禁用这些约束,操作完成后再重新启用。同时,如果你的数据库中包含数据,更改Collation可能会导致数据类型不匹配的...

Global site tag (gtag.js) - Google Analytics