2017-07-05 6 views
1

通常、私はSQLに執着することはありません。私は自分の研究の十分な量をあきらめていません。私は思うことができるすべての考えと私が考えることができるすべての可能性を使い果たしました。MSSQL CLRトリガーの問題

状況:プログラマが私のためにCLRトリガを構築しました。 (私はSQL Guyであり、C#の人ではありません)。このトリガはファイルシステムを使用しているので、今のところ署名しなくて済むので、いくつかの変更が必要でした。

だから前に、この後

ALTER DATABASE [DBName] SET TRUSTWORTHY ON; 
USE [DBName] 
GO 

EXEC sp_configure 'show advanced options', 1; 
GO 
RECONFIGURE; 
GO 
EXEC sp_configure 'clr enabled', 1; 
GO 
RECONFIGURE; 
GO 
EXEC sp_changedbowner 'sa' 
GO 

をインストールDBに以下を実行しました。私は、データベースに接続し、トリガーをインストールするUIを実行しました。最近まで問題なく動作していました。その後、カップルをアンインストールして再インストールするともう機能しません。

現在のコードは、自分の環境で自分のマシンで動作します。インストール/アンインストール。私が信頼できる状態に戻った場合

ALTER DATABASE [DBName] SET TRUSTWORTHY OFF; 

アセンブリをロードしようとすると失敗します。それを元に戻す。それはおそらくアセンブリをロードします。しかしトリガーは何もしません。参考のため。私たちはどちらも同じデータベースを同じユーザIDで使用しています(今のところテスト用です)。

私は私の質問と思います。アセンブリを本当にロードしていることをどのように知るのですか?アセンブリがエラーを投げたり、ログファイルを作成するような標準的な作業をしていないのはなぜですか?

たとえば、この最初の作業の1つは、ログファイルを作成することです。サーバー上に格納されているXMLファイルからデータを読み取ります。私はログファイルの場所abcを入れました。だから私はこの場所や何かを見つけることができないようにエラーが発生している必要があります。しかし何も。だから私には、アセンブリがまったくロードされていないようです。アセンブリを検証する方法は本当にロードされ実行されていますか?

出力やデバッグに表示されない可能性のあるエラーの表示方法を教えてください。

+0

コメントとしてのみ。アンインストールとインストールはまだUIから動作します。 SQLアセンブリフォルダにインストールされ、DB上のトリガーを見ることができます – GrafixMastaMD

+1

質問を* [編集]できます。自分自身に直接返信する際にコメントする必要はありません。 –

答えて

0

これはC#コードでは完全にエラーです。私のプログラマーはついにこのエラーを見つけました。 SQL側で何も問題ありませんでした。私はMadに向かいました。これを読んだ人に感謝します。謝罪します。

彼は間違った場所から特定のディレクトリの場所を読んでいました。ディレクトリが存在しない場合は、コードを終了していました。彼は気分が悪いと感じています。ごめんなさい、ごめんなさい。

関連する問題