在SQL中获取过程的别名列名

时间:2014-03-28 05:36:08

标签: sql sql-server stored-procedures

I我正在使用系统程序从程序中获取Column Name

exec Sp_depends @procedure-name

但它没有返回别名列名。

我在程序中有以下查询。

SELECT ID, E_No As E_No, Case When E_SAL BETWEEN 10000 AND 50000 THEN 1 ELSE 0 END E_ACTIVE
FROM E_MAST
WHERE E_SAL BETWEEN 10000 AND 50000"

我需要所有列,包括别名列,但我无法返回别名。 如何从过程中返回别名列名?

目前的结果是:

**name         type   updated selected  column**
dbo.E_MAST  user table  no      yes       ID
dbo.E_MAST  user table  no      yes       E_NO
dbo.E_MAST  user table  no      yes       E_SAL

我需要这个结果:

**name         type   updated selected  column**
dbo.E_MAST  user table  no      yes       ID
dbo.E_MAST  user table  no      yes       E_NO
dbo.E_MAST  user table  no      yes       E_SAL
dbo.E_MAST  user table  no      yes       E_ACTIVE

1 个答案:

答案 0 :(得分:1)

sp_depends存储过程用于

  

显示有关数据库对象依赖关系的信息,例如依赖于表或视图的视图和过程,以及视图或过程所依赖的表和视图。

因此,它可以正确识别存储过程所依赖的所有列。 E_ACTIVE是别名,它不是数据库对象,因此不能依赖它。


您还可以查看此问题及其答案:Retrieve column definition for stored procedure result set,了解如何获取有关存储过程的元数据。