我有一个引用几个表的存储过程。但是,它指的是带字母的表格。
因此,让我们说一个名为Name
的列来自表Users
,然后存储过程可以调用列名U.Users
。
我的问题是,如何获得所有这些映射的列表,即映射到表格的所有字母?
答案 0 :(得分:2)
每个语句为它使用的表分配自己的别名(如果有的话)。在不同语句中使用的相同表可以不同的别名(或没有别名)。不可能有一个地方查找每个表别名或一个简单的方法来从存储过程或函数或视图中的所有语句中恢复它们。
答案 1 :(得分:2)
您指的是表别名,每个不同的查询都可以有自己的“映射”。这些别名值不是特定于存储过程。这是一个例子:
select
a.col1, a.col2
FROM YourTable1 a
select
b.col1, b.col2
from YourTable2 a
inner join YourTable1 b on a.col1=b.col2
虽然在第一个查询中有YourTable1.col1
别名,在第二个查询中有YourTable1.col2
别名,但在上述两个查询中都会返回 "a"
和"b"
。见Using Table Aliases.
在上面的示例中,人们经常使用表别名,因为写a.col1
比YourTable.col1
更快。任何人都无法知道存储过程中使用的别名,您需要弄清楚,看看这些示例以帮助:
FROM YourTable a
-- ^table ^alias
FROM YourTable AS a
-- ^table ^alias
FROM YourTable1 a
INNER JOIN YourTable2 b ON a.col1=b.col1
-- ^table ^alias
FROM YourTable1 AS a
INNER JOIN YourTable2 AS b ON a.col1=b.col1
-- ^table ^alias