我正在考慮使用擴展屬性來存儲表和列描述,但是我希望能夠搜索所有表以查找特定子字符串的出現。在所有表中搜索列描述描述元
在下面的示例中,顯示的函數返回列表「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轉換一個更有效的方法?
將此元數據存儲在用戶定義的自定義表中而不是使用擴展屬性會更明智嗎?
謝謝。這工作。作爲後續,我想知道如何查看Programmatability/Functions/System Function/MetaData函數下的listeextendedproperty系統函數的代碼? – ChadD 2013-02-21 17:49:32
您可以使用SELECT OBJECT_DEFINITION(OBJECT_ID('sys.fn_listextendedproperty'));看代碼。這來自http://msdn.microsoft.com/en-us/library/ms190940%28v=sql.110%29.aspx。 – 2013-02-21 17:59:40