搜档网
当前位置:搜档网 › 关闭所有表外键约束和触发器

关闭所有表外键约束和触发器

/************************************************************/
/* 关闭所有表的外键约束和触发器 */
/*定义游标*/
/************************************************************/
DECLARE @TABLENAME VARCHAR(50),@SQL VARCHAR(500)
DECLARE Cur_AllTable CURSOR FOR
SELECT name
FROM sysobjects
WHERE Upper(Type) = 'U' and name <> 'HS_TRANSACTION_LOG' ----不包括表HS_TRANSACTION_LOG
ORDER BY name

OPEN Cur_AllTable

FETCH NEXT FROM Cur_AllTable
INTO @TABLENAME
/*循环执行*/
WHILE @@FETCH_STATUS = 0
BEGIN
/* 关闭所有表的外键约束 */
SET @SQL = ' ALTER TABLE ' + @TABLENAME + ' NOCHECK CONSTRAINT ALL '
EXECUTE(@SQL)
PRINT '表:'+ @TABLENAME + '关闭外键约束成功'
/* 关闭所有表的触发器 */
SET @SQL = ' ALTER TABLE ' + @TABLENAME + ' DISABLE TRIGGER ALL '
EXECUTE(@SQL)
PRINT '表:'+ @TABLENAME + '关闭触发器成功'
FETCH NEXT FROM Cur_AllTable
INTO @TABLENAME
END

CLOSE Cur_AllTable
DEALLOCATE Cur_AllTable
GO

相关主题