gpt4 book ai didi

tsql - SQL Server 2008 View 列与基础表列匹配

转载 作者:行者123 更新时间:2023-12-02 10:23:09 25 4
gpt4 key购买 nike

我一直在尝试编写一些 SQL 代码,当提供 View 时,这些代码将定位 View 列引用的列,并计算出这些列上是否有任何索引。最终目标是为用户提供查询 View 时可以使用的列列表。

目前,虽然我只能找到 View 使用的列(以及扩展它们的索引),但我无法将它们与索引的列匹配。

例如:

我有 TableA,它有 5 列:IDNameVal1Val2 , TableBID

我有 TableB,它有 3 列:IDNameCode

然后我创建一个 View View1,它是:

SELECT A.ID,
Name,
Val1
FROM TableA A
INNER JOIN TableB ON A.TableBID = B.ID
WHERE B.Code = 'AAA'

当我使用以下方式查询引用文献时:

SELECT *
FROM sys.dm_sql_referenced_entities('dbo.View1', 'OBJECT')

我将获得其中的表/列引用的列表,但没有指示哪个 View 列引用了什么。

有什么方法可以访问我需要的信息,请记住,我无法进行名称匹配,因为别名中的列可能使用别名,因此可能与基础数据的名称不同。

我正在使用 SQL Server 2008 SP1(如果这有任何影响的话)。

最佳答案

对每个 View 列使用唯一的组合表名 + '_' + ColumnName 重命名 View 中的列。然后您可以将 View 列拆分为表和列。

关于tsql - SQL Server 2008 View 列与基础表列匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2675725/

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