sql >> データベース >  >> RDS >> Sqlserver

すべてのテーブルの制約を無効にして有効にする方法は?

    EXEC sp_MSforeachtable @command1="ALTER TABLE ? NOCHECK CONSTRAINT ALL"
    GO
      

    これを行うこともできます:

    EXEC sp_MSforeachtable @command1="ALTER TABLE ? DISABLE TRIGGER ALL"
    GO
      

    後で有効にするには

    EXEC sp_MSforeachtable @command1="ALTER TABLE ? ENABLE TRIGGER ALL"
    GO
    
    -- SQL enable all constraints - enable all constraints sql server
    -- sp_MSforeachtable is an undocumented system stored procedure
    EXEC sp_MSforeachtable @command1="ALTER TABLE ? CHECK CONSTRAINT ALL"
    GO
      

    編集:
    制約を無効にするだけでは不十分な場合は、制約を削除する必要があります。

    テーブルを削除して再作成する場合は、後で外部キー制約を再作成する必要があります。

    制約を削除する必要があるだけの場合は、これが役立つ場合があります。
    SQL DROP TABLE 外部キー制約

    制約を削除して作成するためのスクリプトを作成する必要がある場合は、こちらの記事が役立つかもしれません:
    SQL Server:情報スキーマから外部キー参照を取得する方法



    1. オラクルのステートメントをトレースする

    2. MySQLでのUTF8文字列の比較

    3. それぞれが等しい1つの列に基づいて、別のテーブルのデータで1つのテーブルの行を更新します

    4. PHPで数学計算の数式として文字列を使用する方法は?