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

标签 sql sql-server tsql

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

  • 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
    

    现在,您可以使用 更改列名。带结果集 属性(property)
     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 - 执行后重命名存储过程多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34305691/

    相关文章:

    .NET DataReader 和 ORDER BY

    SQL - 如何删除所有 ASCII 字符(字段输入后的空白)

    带有 "dynamic"where 子句的 SQL 语句

    sql-server - 使用 DROP 和 CREATE 一次性编写所有存储过程的脚本

    sql - 在 SQL 更新期间跳过过去的转换错误并继续的最佳方法是什么?

    sql-server - 使用 TSQL 从 XML 中删除具有特定值的节点

    mysql - 如何创建mysql函数

    mysql - 获取内部联接中特定实例的数量?

    mysql - 如何优化多个子查询?

    sql - 如何将链接服务器上运行的存储过程的输出发送到 csv 文件中?