Wednesday, December 3, 2008

Disabling foreign keys for all tables in a database.

DROP ALL FOREIGN KEYS SQLSERVER:
SELECT
'
' +
CASE WHEN xtype = 'TR' THEN
'Drop Trigger ' + [Name]
ELSE
'ALTER TABLE ' + object_name(parent_obj) + ' DROP FOREIGN KEY ' + [name]
END +
';'
AS Script
from sysobjects where xtype IN ('F','TR')


DISABLE FOREIGN KEYS SQL Server:
EXEC sp_MSforeachtable @command1="ALTER TABLE ? NOCHECK CONSTRAINT ALL"
EXEC sp_MSforeachtable @command1="ALTER TABLE ? DISABLE TRIGGER ALL"

RE-ENABLING FOREIGN KEYS:
EXEC sp_MSforeachtable @command1="ALTER TABLE ? CHECK CONSTRAINT ALL"
EXEC sp_MSforeachtable @command1="ALTER TABLE ? ENABLE TRIGGER ALL"



IN MYSQL:
Just add "sessionVariables=FOREIGN_KEY_CHECKS=0" to your JDBC URL.

No comments: