保守しているプロジェクトのビュー定義を見ようとして色々調べていたんですが、ちょっと注意したい点があったのでメモ代わりに残しておきます。
環境
Windows8
SQL server 2008 R2 (SSMS 10.50.2500.0)
下記の方法はお手軽。けど、字数に制限があるっぽい。
参考 http://d.hatena.ne.jp/nagakura_eil/20070122/1169446593
SELECT * FROM information_schema.views WHERE TABLE_NAME = 'ビュー名'
使っているDBOに上記のSQLを投げるとビューが返ってくるんですが、
定義が長いとある部分から先は取得できません。
(短ければちゃんと全部見れる)
こちらは全部取得できる
参考 https://www.projectgroup.info/tips/SQLServer/SQL/SQL000010.html
SELECT sys.views.name
,sys.sql_modules.definition
FROM sys.views
INNER JOIN sys.objects
ON sys.objects.object_id = sys.views.object_id
INNER JOIN sys.schemas
ON sys.schemas.schema_id = sys.objects.schema_id
INNER JOIN sys.sql_modules
ON sys.sql_modules.object_id = sys.objects.object_id
WHERE sys.views.name = 'ビュー名を指定' --指定しない場合は全件取得
ORDER BY sys.views.name
こっちは全部取得できます。
ので、特に問題なければこっちを使いましょう。
なぜ発見したか
保守用のPCが社内のクローズドなLANにしか繋がらないのでコピペできない → 別のPCでブラウザ見ながらSQL手打ち → 書く量が少ないほうにしよ → なんか途中で切れちゃう!?
何事もめんどくさがってはいけないようです。笑