質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.02%

  • SQL

    2009questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

SSMSでテーブル定義書を作りたい

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 922

cancat

score 239

こんにちは。 
Windows10でC#のアプリケーションを開発しています。 
Visual Studio 2017 Pro, SQL Management Studioを使っています。 

前提・実現したいこと

SSMSでsqlのテーブル定義書を作成したいです。

試したこと

(1)EntityFrameworkのコードファーストでC#からtableを作った。
(2)それをもとにテーブル定義書と設計書を作ることになった。
(3)Excelで手書きして苦戦した。
(4)定義書は人に振った。
(5)せめて定義書->設計書は自動化しようとC#+ClosedXMLでExcel読み書きを作った。3日くらいかかった。(1)からだと5日以上。まあ勉強だから。
(6)設計書の種類が増えた。
(7)C#+ClosedXMLの勉強にもなるので、設計書の種類に合わせてClassを設計し始めた。
(8)当然このクラスは(1)のclassと酷似していることに気付いた。
(9)そっくり同じclassをふたつ作る意味はないと俄に決意した。
(10)もうtableあるのだから、そのtableからテーブル定義書くらいできて当然じゃないか?
(11)自動生成TOOLを探した。
http://qiita.com/astrsk_hori/items/87556e0828228276aba3
http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/help2.11/DBTree/tableDefine.html
A5M2ならできる。
SSMSでは?

発生している問題・エラーメッセージ

SSMSでテーブル定義書を作りたいです。

補足情報(言語/FW/ツール等のバージョンなど)

Microsoft Visual Studio 2017
Microsoft .NET Framework
Version 4.6.01586

Microsoft SQL Server Management Studio                        14.0.17177.0
Microsoft Analysis Services クライアント ツール                        14.0.806.134
Microsoft Data Access Components (MDAC)                        6.1.7601.17514
Microsoft MSXML                        3.0 6.0 
Microsoft Internet Explorer                        9.11.9600.18792
Microsoft .NET Framework                        4.0.30319.42000
オペレーティング システム                        6.1.7601

です。 
よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • sazi

    2017/09/19 12:42

    質問の意図がいまいちなので確認したいのですが、A5mk2でSQLServerの定義書は作成できるはずですが、SSMSの標準機能でできないかという質問ですか?

    キャンセル

  • cancat

    2017/09/19 13:02

    はい。

    キャンセル

回答 2

checkベストアンサー

+1

SSMSの標準機能としては見たことが無いし、ググっても見つかりませんね。
A5mk2のようなフリーソフトが駄目なら、SI Object Browserのような商用ソフトはあります。

それらは使用しないということであればSQLで取り出してエクセルに貼り付け位しかないのではないでしょうか。
テーブル定義取得クエリ

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/20 10:05

    やっぱりですか。Googleで検索はして、ひととおりメニューは開いたものの、見当たらなかったので。
    ありがとうございます。A5mk2に含むところはないので、併用します。

    キャンセル

  • 2017/09/20 10:16

    SSDT(SQL Server Data Tools)なら、より希望に近いものが出力可能かもしれません。

    キャンセル

  • 2017/09/20 10:33

    SSDTも使ってみます。情報サンクスです。

    キャンセル

+1

Oracleのパフォーマンス・チューニングで呼ばれることが多いですが、テーブル定義書を最新の状態で維持できるているお客様はほとんどないので、SQLでディクショナリ・ビュー(ALL_TABLES, ALL_TAB_COMMENTS, ALL_TAB_COLUMNS, ALL_COL_COMMENTS)などからテキストファイルに簡単なテーブル定義をつくってしまいます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/20 10:15

    ありがとうございます。
    今回はExcelでの提出がmustなのです。自分用ならそもそもテーブル定義書なんて作らないです。
    code first(or table first or edm first)が楽で。

    おっしゃるように最新の状態でテーブルや仕様書を維持するのは、とても困難ですね。
    code firstとかで自動化が重要だと考えています。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 91.02%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • SQL

    2009questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。