如何查询我的所有视图设计以查找 SQL Server 中的特定字符串?
Posted
技术标签:
【中文标题】如何查询我的所有视图设计以查找 SQL Server 中的特定字符串?【英文标题】:How can I query all my view designs looking for a particular string in SQL Server? 【发布时间】:2020-12-17 15:58:50 【问题描述】:在我们的 SQL Server 数据库中有基于另一个系统视图创建的视图。由于要替换另一个系统,我需要找到基于另一个系统构建的视图列表。
当我打开基于另一个系统视图构建的现有视图的设计时,我可以看到另一个系统服务器名称。
因此,在这种情况下,我正在寻找一个查询来查询我的所有视图设计,以查找特定字符串“服务器名称”。
感谢您的支持!
【问题讨论】:
【参考方案1】:好的,根据我的理解,您正在视图的定义中寻找一些字符串,如果是这种情况,您可以执行以下操作:
SELECT
QUOTENAME(OBJECT_SCHEMA_NAME(o.object_id)) + '.' + QUOTENAME(o.name) AS [ObjectName],
o.type_desc AS [ObjectType]
FROM sys.objects AS o -- Will check all objects, inlcuding Views
WHERE OBJECT_DEFINITION(o.object_id) LIKE '%cfs%' -- string in the definition
请注意,我正在检查 sys.objects 而不是 sys.views 以在其他对象(如过程、表等)中查找相同的关键字。如果您只对视图感兴趣,可以将 sys.objects 更改为 sys.views .
【讨论】:
嗨,赫克托,谢谢您的回复!我不想从视图名称中找到字符串。当我们打开视图设计时,我们会看到构建视图的服务器名称和表名称。我想查询该视图设计以查找特定的服务器名称。 @Viknesh 我更改了查询定义的答案,并且我还查询对象而不是视图,以防服务器创建视图之外的其他对象。 嗨,赫克托,非常感谢您的快速回复!这对我有帮助。感谢您的支持!以上是关于如何查询我的所有视图设计以查找 SQL Server 中的特定字符串?的主要内容,如果未能解决你的问题,请参考以下文章