【发布时间】:2023-03-19 11:50:01
【问题描述】:
在 Microsoft SQL Server 2008 R2 中,假设我的数据库具有以下视图:
create view [dbo].[MyView]
(
[MyColumnA]
)
AS
(SELECT MyColumnB FROM MyTable)
现在假设我只知道有一个名为 MyView 的视图有一个名为 MyColumnA 的列,但我不知道它映射到 MyTable.ColumnB。确定 MyView.ColumnA 映射到哪个表和列的最简单/最快的方法是什么?有没有可以告诉我的查询?比如:
SELECT TABLE_NAME, TABLE_COLUMN_NAME
FROM INFORMATION_SCHEMA.VIEW_MAPPINGS
WHERE VIEW_NAME = 'MyView' AND VIEW_COLUMN_NAME = 'MyColumnA'
此查询将返回 [MyTable, MyColumnB]。
目前我必须在 SSMS 对象资源管理器中找到视图,右键单击它并生成创建脚本,然后搜索视图列的名称。然后我记下它在视图中的序号位置(比如说第 4 列),并且必须在 select 语句中找到相应的第 4 列。 select 语句很可能会使用表别名,因此我必须查看 JOIN 语句以根据别名查找表名。
这非常耗时,我希望找到一种更快的方法,如果不是通过查询,那么也许可以通过比我更快或更容易的其他过程。
【问题讨论】:
标签: sql sql-server-2008 view