相关疑难解决方法(0)

查找视图中使用的别名的真实列名?

假设我有一个视图,其中一些列名是别名,例如本例中的"surName":

CREATE VIEW myView AS
    SELECT  
            firstName,
            middleName,
            you.lastName surName
    FROM 
            myTable me
            LEFT OUTER JOIN yourTable you
            ON me.code = you.code
GO
Run Code Online (Sandbox Code Playgroud)

我可以使用INFORMATION_SCHEMA视图检索有关视图的一些信息.
例如,查询

SELECT column_name AS ALIAS, data_type AS TYPE
FROM information_schema.columns 
WHERE table_name = 'myView'
Run Code Online (Sandbox Code Playgroud)

收益率:

 ----------------
|ALIAS     |TYPE |
 ----------------
|firstName |nchar|
|middleName|nchar|
|surName   |nchar|
 ----------------

但是,我想知道实际的列名.理想的情况是:

 ---------------------------
|ALIAS     |TYPE |REALNAME  |
 ---------------------------
|firstName |nchar|firstName |
|middleName|nchar|middleName|
|surName   |nchar|lastName  |
 ---------------------------

如何根据别名确定实际列名称是什么? 必须有一些方法来使用sys表和/或INFORMATION_SCHEMA视图来检索此信息.


编辑: 我可以接受这种令人厌恶的东西,这与Arion的答案相似:

SELECT
    c.name AS ALIAS,
    ISNULL(type_name(c.system_type_id), t.name) AS DATA_TYPE,
    tablecols.name AS REALNAME …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

11
推荐指数
3
解决办法
2万
查看次数

标签 统计

sql ×1

sql-server ×1

t-sql ×1