执行后将存储过程重命名为多个列

时间:2015-12-16 06:56:38

标签: sql sql-server tsql

执行我的存储过程后,将返回以下列:

  • srno
  • 名称
  • 金额
  • BKT1
  • bkt2

但我想将这些列名更改为:

  • srno
  • 名称
  • 金额
  • col_name_i / p_from_user
  • col_name_i / p_from_user

你能帮忙吗?

2 个答案:

答案 0 :(得分:3)

由于您没有提及该版本,因此我假设您拥有SQL Server 2012+版本。您可以使用WITH RESULT SETS属性来更改输出列名称

示例

CREATE PROCEDURE SP_Test
    AS
BEGIN
   SELECT 1 AS 'ColA', 2 AS 'ColB'
END

现在,您可以使用 WITH RESULT SETS 属性

更改列名称
 EXEC SP_Test 

EXEC SP_Test WITH RESULT SETS( 
(New_Col1 INT,
NEW_Col2 INT))

如果您使用的是旧版本的SQL Server,则可以将存储过程结果集转储到临时表或表变量中,然后您可以为名称添加别名(来自上面的示例)

DECLARE @Mytest TABLE (New_Col1 INT, New_Col2 INT)

INSERT INTO @Mytest EXEC Sp_Test
SELECT * FROM @Mytest

答案 1 :(得分:0)

使用动态sql下面的列别名:

declare @q nvarchar(max)
set @q ='select bkt1 as ' + @ipfromuser  +' from table1'
exec(@q)