gpt4 book ai didi

sql-server - 在所有表中搜索列描述描述元

转载 作者:行者123 更新时间:2023-12-05 08:44:14 26 4
gpt4 key购买 nike

我正在考虑使用扩展属性来存储表和列描述,但我希望能够搜索所有表的描述以查找特定子字符串的出现。

在以下示例中,显示的函数返回表“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%'

是否有更有效的搜索方式可以避免将 VALUE 字段从 SQL_VARIANT 转换为 varchar?

将此元数据存储在用户定义的自定义表中而不是使用扩展属性会更明智吗?

最佳答案

您可以查看系统 View 以搜索所有表中的所有列。

SELECT schemas.name schemaName
, tables.name tableName
, columns.name columnName
, extended_properties.value extendedProperties
FROM sys.schemas
INNER JOIN sys.tables
ON schemas.schema_id = tables.schema_id
INNER JOIN sys.columns
ON tables.object_id = columns.object_id
INNER JOIN sys.extended_properties
ON tables.object_id = extended_properties.major_id
AND columns.column_id = extended_properties.minor_id
AND extended_properties.name = 'MS_Description'
AND CAST( extended_properties.value AS nvarchar(max) ) LIKE '%SEARCH%';

关于sql-server - 在所有表中搜索列描述描述元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15008338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com