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

4 sql t-sql sql-server

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

  • 姓名
  • 数量
  • bkt1
  • bkt2

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

  • 姓名
  • 数量
  • col_name_i/p_from_user
  • col_name_i/p_from_user

你能帮忙吗?

Anu*_*thi 5

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

示例

CREATE PROCEDURE SP_Test
    AS
BEGIN
   SELECT 1 AS 'ColA', 2 AS 'ColB'
END
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用WITH RESULT SETS属性更改列名

 EXEC SP_Test 

EXEC SP_Test WITH RESULT SETS( 
(New_Col1 INT,
NEW_Col2 INT))
Run Code Online (Sandbox Code Playgroud)

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

DECLARE @Mytest TABLE (New_Col1 INT, New_Col2 INT)

INSERT INTO @Mytest EXEC Sp_Test
SELECT * FROM @Mytest
Run Code Online (Sandbox Code Playgroud)