くりーむわーかー

プログラムとか。作ってて ・試しててハマった事など。誰かのお役に立てば幸いかと。 その他、いろいろエトセトラ。。。

ストアド

SQLServer 2000 ストアドとかの更新日

持ってないんだって・・・。

SQLServer2005以降なら、sys.objectsの「modify_date」で取れるんだけど、SQLServer2000は更新日が無いらしい。衝撃的である。

ストアド、関数、ビューのソース管理するツールをふんわり作ってるんだけど、古い環境だと、SQLServer2000をいまだに使ってやがる環境がまだあるもんで。。。。

んー、2000の場合はソースのバイナリ比較をするしか無いかしらね。

SQLServerで関数とかViewとかストアドのソースを取得

タイトル通り。ググれば出てくるんだけど、イマイチ欲しい情報がすべて乗ってる例がない。なので、特筆。

SELECT
Y.name
,Y.type
,Y.create_date
,Y.modify_date
,X.uses_ansi_nulls
,X.uses_quoted_identifier
,X.definition
FROM sys.sql_modules AS X
INNER JOIN sys.objects AS Y
ON X.object_id = Y.object_id
WHERE Y.is_ms_shipped = 0
ORDER BY Y.type,Y.name

単純に「sys.sql_modules」に「sys.objects」くっつけるだけ。typeとかmodify_dateが欲しいので。 「is_ms_shipped = 0」付けとかないと、SQLServerが勝手に作るやつも出てくる。

問合せ