当前位置: 代码迷 >> Sql Server >> 两个sql数据库事务复制中 FOREIGN KEY 约束引用有关问题 (急)
  详细解决方案

两个sql数据库事务复制中 FOREIGN KEY 约束引用有关问题 (急)

热度:179   发布时间:2016-04-27 15:10:05.0
求助:两个sql数据库事务复制中 FOREIGN KEY 约束引用问题 (急)
哪位高手能帮我解决一下这个问题呀,我做的是sqlserver2000的两个数据库的事务复制,同步的时候提示下面的错误,用什么方法可以解决呢?

1、约束   'aaaaaCDS80B_PK '   正由表   'WXY_J_EXTEND '   的外键约束   'FK_WXY_J_EXTEND_CDS80B '   引用。
(源:   KFB1\KFB1   (数据源);   错误代码:   3725)


2、Category:SQLSERVER
Source:     AYKJKFB
Number:     3726
Message:   未能除去对象   'CDS00COR ',因为该对象正由一个   FOREIGN   KEY   约束引用。
不甚感激!

------解决方案--------------------
你是执行什么任务? 删除吗? 要先删除外键,再删除主键
------解决方案--------------------
DECLARE @CUR CURSOR
DECLARE @表名 VARCHAR(100)
DECLARE @字段名 VARCHAR(100)
DECLARE @约束名 VARCHAR(100)
DECLARE @SQL VARCHAR(8000)

--禁用所有外键约束
SET @CUR = CURSOR READ_ONLY
FOR
SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS)
ORDER BY TABLE_NAME, COLUMN_NAME

OPEN @CUR

FETCH NEXT FROM @CUR INTO @表名, @字段名, @约束名

WHILE (@@FETCH_STATUS = 0)
BEGIN
--禁用约束
SET @SQL = 'ALTER TABLE ' + @表名 + ' NOCHECK CONSTRAINT ' + @约束名
EXEC (@SQL)

FETCH NEXT FROM @CUR INTO @表名,@字段名,@约束名
END

CLOSE @CUR
DEALLOCATE @CUR
  相关解决方案