SQL:如何在数据库中的所有视图中搜索 ID 并列出提供结果的视图和列名称? [复制]

Posted

技术标签:

【中文标题】SQL:如何在数据库中的所有视图中搜索 ID 并列出提供结果的视图和列名称? [复制]【英文标题】:SQL: How can I search an ID across all the views in a database and list the view and column name that provided a result? [duplicate] 【发布时间】:2018-10-11 11:06:01 【问题描述】:

我可以访问在 SQL 数据库上构建的一组视图。我想要做的是搜索一个术语,例如所有视图中所有列的“Florida”,并生成一个表格,其中包含所附图像的列:

【问题讨论】:

你已经尝试过什么?我建议查看像游标这样的东西来遍历您想要检查的所有视图,然后使用一些动态 SQL 来查询每个视图并产生您想要的结果。 【参考方案1】:

用它来为你生成一堆 SQL 语句:

SELECT REPLACE(REPLACE(REPLACE(REPLACE(
    'SELECT "s" as [SchemaName], "v" as [View Name], "c" as [Column Name] FROM [v] v WHERE v.[c] LIKE "Florida%";'
    , 's', c.TABLE_SCHEMA)
    , 'v', c.TABLE_NAME)
    , 'c', c.COLUMN_NAME)
    , '"', '''')
FROM information_schema.columns c INNER JOIN sys.views v ON v.name = c.TABLE_NAME

然后将它们从结果网格中复制出来,并在查询窗格中运行它们

【讨论】:

您好 Caius,我尝试了您的代码,但效果不佳。它给了我以下错误:“'SELECT "s" as [SchemaName], "v" as [View Name], "c" as [Collumn Name] FROM [v] 附近的语法不正确v WHERE v.[c] LIKE "Florida%";'." sql中缺少括号,试试修改后的版本

以上是关于SQL:如何在数据库中的所有视图中搜索 ID 并列出提供结果的视图和列名称? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 sql 查询使用注册日期列搜索网格视图

SQL Server 2005 搜索某些数据库对象的视图

如何在 SQL Server 数据库中搜索字符串?

SQL 在 Oracle 中搜索对象,包括存储过程

如何在SQL Server的数据库中搜索字符串

如何在 SQL 中编写搜索查询