小编Pre*_*red的帖子

使用临时表时 SQL Server 描述第一个结果集失败 (sp_describe_first_result_set)

长话短说,我有一个第三方应用程序,当它无法检索查询/存储过程的元数据时,它的行为会有所不同。

众所周知sys.sp_describe_first_result_set当存储过程中使用临时表时,无法检索存储过程的元数据。

为了简单起见,这里举一个简单的例子。

CREATE PROCEDURE dbo.Test
    @Seed INT = 0
AS
BEGIN
    CREATE TABLE #MyTemp (
        ID INT NOT NULL
    );

    INSERT INTO #MyTemp (ID)
    VALUES
          (@Seed + 1)
        , (@Seed + 2)
        , (@Seed + 3)
    ;

    SELECT
        ID
    FROM
        #MyTemp
END
Run Code Online (Sandbox Code Playgroud)

执行该 SP 将返回一个结果集,其中有一列 ( ID) 和三条记录。

EXEC dbo.Test
    @Seed = 1;
Run Code Online (Sandbox Code Playgroud)

结果是:

ID
-----------
2
3
4
Run Code Online (Sandbox Code Playgroud)

但是,尝试获取元数据将会失败:

EXEC sys.sp_describe_first_result_set @tsql = N'EXEC dbo.Test @Seed = 1;';
Run Code Online (Sandbox Code Playgroud)

结果是:

Msg 11526, Level 16, State 1, …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2012

4
推荐指数
1
解决办法
3944
查看次数

PHP算术运算(加法)

floor( 500 * (1.4 / 100) )给了我6, floor( 500 * 1.4 / 100 )给了我7

任何人都可以帮助我理解PHP算法如何在内部工作.

php

1
推荐指数
1
解决办法
79
查看次数

标签 统计

php ×1

sql ×1

sql-server ×1

sql-server-2012 ×1