Microsoft SQL 2000 以降のテーブルに「メタデータ」のような説明やコメントを追加することはできますか?
CREATE TABLE ステートメントを使用してこれを行うにはどうすればよいでしょうか?
フィールドに説明やコメントを追加することはできますか?
MSSQL 2000 でこの情報を照会するにはどうすればよいでしょうか。2005年?
Microsoft SQL 2000 以降のテーブルに「メタデータ」のような説明やコメントを追加することはできますか?
CREATE TABLE ステートメントを使用してこれを行うにはどうすればよいでしょうか?
フィールドに説明やコメントを追加することはできますか?
MSSQL 2000 でこの情報を照会するにはどうすればよいでしょうか。2005年?
拡張プロパティを使用します。たとえば、拡張プロパティを dbo スキーマのテーブルに追加するには、次を使用できます。
EXEC sys.sp_addextendedproperty @name=N'<NameOfProp>',
@value=N'<Value>' , @level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE',@level1name=N'<Table>'
それらを更新できます:
EXEC sys.sp_updateextendedproperty
@name=N'MS_Description', @value=N'My Description' ,
@level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE'
,@level1name=N'<YOUR TABLE NAME>'
次のように読むことができます。
SELECT *
FROM fn_listextendedproperty (NULL, 'schema','dbo', 'table', '<yourtable>', default, default);
また
SELECT
p.name AS [Name],p.value
FROM
sys.tables AS tbl
INNER JOIN sys.extended_properties AS p ON p.major_id=tbl.object_id AND p.minor_id=0 AND p.class=1
WHERE
(tbl.name=N'<yourtablename>' and SCHEMA_NAME(tbl.schema_id)=N'dbo')
ORDER BY
[Name] ASC
ほとんどのツールとユーザーは、これをサポートするために拡張プロパティを使用します。SSMS で使用される共通名は MS_Description です
これらのプロパティを作成したり読み取ったりするためのストアド プロシージャがいくつか組み込まれています。これらのプロシージャは時間の経過とともに変更されるため、SQL バージョン間で互換性の違いが生じます。
残念ながら、このアプローチは負荷の高い本番環境には適用できません。拡張プロパティを操作するストアド プロシージャは、ターゲット テーブルに排他ロックを設定します。それらが実行されている間、テーブル全体を読み取ることはできません。