1

我无法跟踪对我的数据库的调用,它发布在 Azure 上,所以我收到了这个问题 - SQL 服务器实际上会做多少工作?

我有这个返回表的存储过程:

CREATE PROCEDURE prcNew AS
    CREATE TABLE @tblTemp
        Col_1
        Col_2
        Col_3
    .....................
    /* @tblTemp filled something like this */
    INSERT INTO @tblTemp
        SELECT SUM(tblExisting.Col_1)
        SELECT SUM(tblExisting.Col_2)
        SELECT SUM(tblExisting.Col_3)
    .....................
    SELECT * FROM @tblTemp
GO

现在我在 IIS 中有 OData 网站和 web 服务,使用 Visual Studio 2012 制作,它使用实体框架函数导入从 prcNew 获取数据。

因此,如果我使用“选择”字样调用 web 服务,试图从 prcNew 中仅获取 Col_2:

    http://.../MyService.svc/prcNew?$select=Col_2

SQL Server 究竟会将哪些数据传递给 Web 服务?真的只有 Col_2 吗?如果它不会获取 Col_1 和 Col_3 - 它是否也会跳过计算过程中的那些列值?

4

1 回答 1

0

不,它只会从存储过程的结果中选择一列。所以它将运行 sp 中的所有语句

于 2013-08-12T16:28:26.557 回答