2017-06-30 2 views
0

データベースのオブジェクトを変更/削除できず、レコードの作成、挿入、削除のみができません。たとえば、私は...トリガエラーでトランザクションが終了したためにテーブルを削除/変更できませんms-sql-server 2008

できません メッセージ3609、レベル16、状態2、行1 トランザクションがトリガーで終了しました。バッチは中止されました。 (ドロップテーブルステップ上の)次のコードで

create schema Test 
go 
create table test.test (
test varchar(5) 
) 
go 
insert into test.test(test) values('test') 
go 
select * 
from Test.test 
go 
drop table Test.test 
go 
drop schema Test 
go 

私は間違いなくEVERデータベース上の任意のトリガーを作成していません。私はサーバーの制御権を持っていないので、私の許可は制限されています。ちょうど問題が発生しました。私はこのデータベースを何年も使っています。これが初めて起こったのです。私はそれが許可と関係があると信じています。

この新しいエラーの原因は何もわかりません。

+1

コードが正常に表示されています...何かが欠落しています。各 'GO'ブロックを実行して、円滑に実行できるかどうか確認できますか? –

+0

エラーが発生すると、すべてが「drop」ステートメントまで正常に機能します。私はそれを落としたり、デザインを変更することはできません。テーブルを作成してレコードを追加/削除するだけです。 –

+0

ローカルコンピュータで問題はありませんが、それは予想通りです。私はこれが私のリモートアカウントの設定方法と関係があると考える必要があります。サイトをホストしている技術者は、saアカウントを使用してテーブルを削除することもできません。 –

答えて

0

問題が見つかりました。誰かがデータベーストリガー「test_ddl_trigger」を追加してデータベースをハッキングしました。

`SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
create trigger [test_ddl_trigger] on database for drop_table, alter_table as print 'You can not' 
rollback 
; 
GO 
SET ANSI_NULLS OFF 
GO 
SET QUOTED_IDENTIFIER OFF 
GO 
ENABLE TRIGGER [test_ddl_trigger] ON DATABASE 
GO` 
関連する問題