2016-04-18 5 views
0

私はデータベースで動作し、毎月新しいデータベースを作成するC#アプリケーションを作成しています。データベースの接続/切断イベントを購読するには?

古いデータベースは、SQL Managementスタジオなどの方法でユーザーが切り離して添付することができます。

SQL Serverイベント(存在する場合)をリスンし、データベースがアタッチまたはデタッチされたときにどのようにキャッチするかを調べようとしています。

attach操作が発生すると、アプリケーションがデータベースをチェックし、テーブルスキーマを最新バージョンに更新する必要があります。

また、SQL SMOを学習していて、このライブラリが私にイベントリスナーを提示すると思っていましたが、私はそれらを見つけることができません。

もちろん、数秒ごとに新しいデータベースをチェックするスレッドまたはタイマーを実行できます。私はこれを試して、SQLServer.Databases.Refresh()を実行してデータベースリストを更新してから、それを反復して処理することができます。

これを実現する簡単な方法はありますか?おそらくどこかでOnDatabaseAttachのようなイベントがありますか?

EDITは正しい方向に私を導くためにあなたelsausmcありがとうございます。 ServerEventSetで少し検索して、this pageに出くわしました。

私は簡単なテストを行いましたが、データベースが作成または接続されたときにServerEvent.CreateDatabaseが起動しますが、ServerEvent.DropDatabaseは切断時に起動しません。多分他のイベントかもしれない。それは私が次に見つけることです。ありがとうございました:)

10以上の異なるフレーズでグーグルグーグルし、smo server eventsという単純なものを思いついたことはありません。愚かな私。

答えて

1

おそらくSMOにアタッチ/デタッチがなく、CREATEとDROPでカバーされていますか? ServerEventSet.CreateDatabaseおよびServerEventSet.DropDatabaseを呼び出してイベントを処理しますか?申し訳ありませんが、すでにこれを調べましたか?

関連する問題