如何查询我的所有视图设计以查找 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 中的特定字符串?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 查询以查找数据库中所有用户的所有权限/访问权限

Sql查询以查找两个给定日期之间的视图百分比差异

如何将原始 SQL 转换为 Yii2,如查找查询

查询以计算 Sql Server 视图中的列数

Oracle SQL 按日期查找唯一 ID

带有嵌套 SQL 查询或如何查找最后一个 INET 的 Postgres 视图