拡張プロパティを使用してテーブルと列の説明を保存することを検討していますが、すべてのテーブルの説明を検索して、特定の部分文字列の出現を探したいと考えています。
次の例に示す関数は、表「PEOPLE」の列の説明のリストを返します。これらの説明は、"MS_DESCRIPTION" という名前の拡張プロパティとして格納されます。
SELECT
cast(VALUE AS VARCHAR(8000)) AS [DESCRIPTION]
FROM
::fn_listextendedproperty(NULL
,'user'
,'dbo'
,'table'
,'PEOPLE'
,'column'
,NULL)
ただし、特定の部分文字列について、すべてのテーブルですべての列の説明を検索するにはどうすればよいでしょうか?
SELECT
cast(VALUE AS VARCHAR(8000)) AS [DESCRIPTION]
FROM
::fn_listextendedproperty(NULL
,'user'
,'dbo'
,'table'
,'?'
,'column'
,NULL)
where cast(VALUE AS VARCHAR(8000)) LIKE '%SEARCH%'
SQL_VARIANT から varchar への VALUE フィールドの変換を回避する、より効率的な検索方法はありますか?
拡張プロパティを使用する代わりに、このメタ データをユーザー定義のカスタム テーブルに格納する方が賢明でしょうか?