Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

環境

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

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

ymstshinichiro
色々あってバックエンド専業っぽくなってきました。最近はRailsにどっぷり。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away