web-dev-qa-db-ja.com

SQL Server-CREATE TABLEにフィールドの説明を追加できますか?

フィールド記述拡張プロパティが存在する場所とその取得方法に関する投稿はたくさんありますが、CREATETABLEステージでこれらを追加することについては何もありません。

私は動的にテーブルを作成しているので、フィールドの説明を動的に追加するのは簡単なことですが、方法がわかりません。

誰かがこれを行うことができましたか?

18
Mike

CREATE TABLEでそれを行うことはできませんが、同じデータベーススクリプトで、 このアプローチ を使用して同時に行うことができます。

CREATE table T1 (id int , name char (20))

EXEC   sp_addextendedproperty 'MS_Description', 'Employee ID', 'user', dbo, 'table', 'T1', 'column', id

EXEC   sp_addextendedproperty 'MS_Description', 'Employee Name', 'user', dbo, 'table', 'T1', 'column', name

次に、これを使用してエントリを表示できます。

SELECT   *
FROM   ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', 'T1', 'column', default)
29
DOK

Create TableT-SQLステートメントがこれをサポートしているとは思いません。ただし、SSMSを介してテーブルを定義している場合は、テーブルの作成と同時にテーブルレベルと列レベルのコメントを簡単に入力できます。

4
Randy Minder

上記に加えて、SSMSを使用してそれを行うこともできます。 SSMSで、テーブルを右クリックして[プロパティ]を選択し、[拡張プロパティ](左側のペイン)をクリックします。右側のペインの中央に[プロパティ]ボックスがあり、添付の画像に示すように、そこをクリックして説明に名前とテキストを入力します Screen Capture for Adding Descriptive Text to a Table Using SSMS

2
Muhammad

SQL Serverは、一度に1つの名前と値のペアで説明を追加できるシステムストアドプロシージャを提供します。

次の例:

EXEC sys.sp_addextendedproperty 
@name=N'Column 2 Description' -- Give your description a name
   , @value=N'blah blah 2 for a specific column' -- Actual description
   , @level0type=N'SCHEMA'
   , @level0name=N'dbo'
   , @level1type=N'TABLE'
   , @level1name=N'MyTestTable' -- Name of your table
GO

説明の名前と値のペアごとに繰り返す必要があります

お役に立てれば

1
Muhammad