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



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

  • srno
  • 名称
  • 金额
  • bkt1
  • bkt2

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

  • srno
  • 名称
  • 金额
  • col_name_i/p-from_user
  • col_name_i/p-from_user

你能帮忙吗?

因为您没有提到版本,所以我假设您有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

在动态sql:中使用如下列别名

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

最新更新