とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub
スポンサードリンク

ストアド プロシージャの自動実行と解除方法

SQL Server でストアドの自動化と解除


自作のストアドを、SQL Server サービスの起動と同時に実行する手順
及び、解除方法をを記します。

SQL ServerはWindowsのログオンと同時にサービスの起動が行われるため
データベースの起動に合わせてストアドを実行させるには
データベース起動トリガに自作のストアドをセットしてやれば良い。

利用する関数は
sp_procoption (Transact-SQL)

使い方は以下のとおり
--ストアド プロシージャ自動実行の設定

exec sp_procoption [USER_STORED_PROCEDURE], startup, true;
で、データベース開始時に実行するストアドをセット
[USER_STORED_PROCEDURE]には、実行したいストアド名を指定します。

即時実行したい場合は
exec [USER_STORED_PROCEDURE];
も実行。

念の為に有効になっているかを確認します。
select * from ::fn_trace_getinfo(default)
まっさらな状態だとID2が増えているはず。

ID1はSQLのデフォルトトレースなので気にしなくてOKです。

ストアドの自動起動を解除する時は
exec sp_procoption [USER_STORED_PROCEDURE], startup, false;
で解除。

何でもかんでもアプリケーション実装側のプログラミングで対処するのではなくて、データベースのトリガも念頭においた設計をすることで、開発効率アップや保守性にすぐれたシステムを実装できるかもしれませんね。

気をつけることは、アーキテクチャの機能を手探りで進めすぎると、どこに何を設定したんだか分からなくなるので軌跡は残しましょう。
▼この記事を読んだ方は、こんな記事も読んでいます。▼

スポンサードリンク

テーマ:プログラミング - ジャンル:コンピュータ

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://dalmore.blog7.fc2.com/tb.php/94-1820e35b
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad