2016-09-09 3 views
0
use DatabaseExample 
go 

DELETE FROM schema1.table1; 
DELETE FROM schema2.table2; 
DELETE FROM schema3.table3; 

EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all" 

重要な情報を共有する危険性がないため、テーブル/データベースの名前を変更しました。私はSCHEMA2からテーブルを削除しようとするたびにしかし、それは私に次のようなメッセージを与える:"Meta Vaut AuditLogを無効にするため、削除は許可されていません" SQL Server

メッセージ50000、レベル16、状態1、プロシージャtdel_Batches、ラインを21、それはメタ無効になりますよう削除が許可されていません
Vault AuditLog。自己責任でトリガーを無効にすることができます。

メッセージ3609、レベル16、状態1、行11
トランザクションがトリガーで終了しました。バッチは中止されました。

サーバー全体のトリガーを無効にしようとしましたが、影響はありませんでした。私はそれが特定のスキーマ内のテーブルだけであると言ったように、他はうまくいきます。 2つのストアドプロシージャは、キー制約を無効にしてから、実行後に再び有効にします。

+1

*トリガを無効にしようとした....が、効果がなかったとあなたはどういう*?、あなたが実際にやったのとまさに – Lamak

+0

起こった「すべてのサーバー上のすべてのDISABLEトリガー; ゴー」 を私は同じ正確なエラーメッセージを受け取り続けた –

+1

どのようにそれらを無効にしましたか?、あなたはテーブルによってテーブルをトリガーを無効にしましたか? – Lamak

答えて

1

あなたの中から、あなたがデータを削除したいテーブルにそれらを無効にしてみてください必要がありますので誤差は、トリガーであるように思わ:あなたが後でそれらを再び有効にする場合は、あなたが行うことができます

sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'; 

;

sp_msforeachtable 'ALTER TABLE ? ENABLE TRIGGER all'; 
関連する問題