SQLServer删除/重建/禁用/启用外键约束
来源:互联网 发布:淘宝如何设置选项卡 编辑:程序博客网 时间:2024/05/27 19:28
SQLServer从一个数据库导数到另一个库的时候,如果目标库有外键约束,可能会导致导数失败。这时,可以将外键先删除或禁用,等导数完成后再重建或启用外键。
禁用、启用外键:
DECLARE @nocheckSql NVARCHAR(max)--禁用外键约束的sqlSET @nocheckSql = (SELECT 'alter table dbo.['+b.name+'] nocheck constraint ['+a.name+'];' from sysobjects a,sysobjects b where a.xtype='f' and a.parent_obj=b.id and b.xtype='u' for xml PATH(''))print @nocheckSql--execute sp_executesql @nocheckSqlDECLARE @checkSql NVARCHAR(max)--启用外键约束的sqlSET @checkSql = (SELECT 'alter table dbo.['+b.name+'] check constraint ['+a.name+'];' from sysobjects a,sysobjects b where a.xtype='f' and a.parent_obj=b.id and b.xtype='u' for xml PATH(''))print @checkSql--execute sp_executesql @checkSql
删除、重建外键:
declare @createSql nvarchar(max)declare @delSql nvarchar(max)Set @createSql = (select 'ALTER TABLE ['+OBJECT_NAME(k.parent_object_id)+'] ADD CONSTRAINT ['+k.name+'] FOREIGN KEY (['+COL_NAME(k.parent_object_id,c.parent_column_id)+']) REFERENCES ['+OBJECT_NAME(k.referenced_object_id)+'](['+COL_NAME(k.referenced_object_id,key_index_id)+'])'+case k.delete_referential_action when 0 then '' when 1 then ' ON DELETE CASCADE ' when 2 then ' ON DELETE SET NULL ' when 3 then ' ON DELETE SET DEFAULT ' END+ case k.update_referential_action when 0 then '' when 1 then ' ON UPDATE CASCADE ' when 2 then ' ON UPDATE SET NULL ' when 3 then ' ON UPDATE SET DEFAULT' end +';' from sys.foreign_keys k,sys.foreign_key_columns c where c.constraint_object_id=k.object_id for xml path(''))print @createSql--重建外键约束的语句set @delSql = (select 'alter table ['+O.name+'] drop constraint ['+F.name+'];' from sysobjects O,sys.foreign_keys F where F.parent_object_id=O.id for xml path(''))print @delSql --删除外键约束的语句--exec sp_executesql @delSql--exec sp_executesql @createSql
- SQLServer删除/重建/禁用/启用外键约束
- SqlServer禁用、启用外键约束
- oracle 删除外键约束 禁用约束 启用约束
- Oracle中删除外键约束、禁用约束、启用约束
- Oracle中删除外键约束、禁用约束、启用约束
- Oracle中删除外键约束、禁用约束、启用约束
- oracle 删除外键约束 禁用约束 启用约束
- 外键约束禁用启用
- 删除所有外键约束 禁用所有外键约束 启用所有外键约束
- oracle 删除外键约束 禁用约束 启用约束 查找外键
- 【转】oracle 删除外键约束 禁用约束 启用约束 查找外键
- (转载)Oracle中删除外键约束、禁用约束、启用约束
- SQL Server 禁用外键约束和启用外键约束及删除表数据
- 禁用启用数据库外键约束
- 禁用、启用外键约束和触发器
- mysql启用、禁用外键约束
- 禁用和启用mysql外键约束
- oracle启用 禁用 删除外键
- Python标准库04 文件管理 (部分os包,shutil包)
- 找出N个浮点数中最大的k个不同的浮点数
- 输入输出一行文本
- dodo:人脸识别方法个人见解
- Ext JS百强应用: 要用EXTJS,先了解javascript 的oop--第5强
- SQLServer删除/重建/禁用/启用外键约束
- 2013-06-16 读书笔记 大前研一 《无国界的世界》
- HEVC核心编码技术之六.环路滤波,SAO及其它
- onbeforeunload与onunload事件总结:
- 地址
- C++对象原型
- 黑马程序员 java 修饰符类型(public,protected,private,friendly)
- [Oracle] 在没有备份的情况下undo损坏怎么办?
- 一个简单的小游戏