LoginSignup
3
6

More than 5 years have passed since last update.

SQLserverでビューの定義を取得するときの注意点

Posted at

保守しているプロジェクトのビュー定義を見ようとして色々調べていたんですが、ちょっと注意したい点があったのでメモ代わりに残しておきます。

環境

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手打ち → 書く量が少ないほうにしよ → なんか途中で切れちゃう!?

何事もめんどくさがってはいけないようです。笑

3
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6