/************************************************************/
/* 关闭所有表的外键约束和触发器 */
/*定义游标*/
/************************************************************/
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