获取存储过程的最佳解决方案在T-SQL中返回标题名称

时间:2015-06-08 09:23:54

标签: sql-server-2008 tsql stored-procedures

我在 Sql Server 2008 中有一个存储过程,下面是正文,然后插入汽车然后获取它:

ALTER PROCEDURE [dbo].[sp_Car_Insert]
    @RunDate VARCHAR(25),
    @CarNo NVARCHAR(50),
    @Volume INT,
    @Weight SMALLINT,
    @CarName NVARCHAR(50),
    @InUse BIT,
    @CarID TINYINT OUTPUT
AS
BEGIN
    SELECT @CarID = ISNULL(MAX(c.CarID), 0) + 1
    FROM   Car c

    INSERT INTO Car
      (
        CarID,
        RunDate,
        CarNo,
        Volume,
        [Weight],
        CarName,
        InUse,
        IsDeleted
      )
    VALUES
      (
        @CarID,
        @RunDate,
        @CarNo,
        @Volume,
        @Weight,
        @CarName,
        @InUse,
        0
      )

    SELECT *
    FROM   Car
    WHERE  CarID = @CarID
END

我想知道是否有办法在T-SQL中获取选定的列标题信息? 有没有解决办法来获取它们?

例如:我们可以通过INFORMATION_SCHEMA.ROUTINE_COLUMNS表获取函数表的标题。 sql server 中是否有任何信息可以让程序返回标题?

1 个答案:

答案 0 :(得分:2)

sys.dm_exec_describe_first_result_set_for_object

  

此动态管理功能将@object_id作为参数,并描述具有该ID的模块的第一个结果元数据。指定的@object_id可以是Transact-SQL存储过程的ID或Transact-SQL触发器。

它只描述了第一个结果集。