我无法跟踪我的数据库的调用,它在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网站和webservice,用Visual Studio 2012制作,它使用Entity Framework函数导入从prcNew获取数据。
因此,如果我使用'select'字呼叫webservice,尝试仅从prcNew获取Col_2:
http://.../MyService.svc/prcNew?$select=Col_2
SQL Server传递给Web服务的确切数据是什么?它确实只是Col_2吗?如果它不会获取Col_1和Col_3 - 它是否会跳过计算过程中的那些列值?
答案 0 :(得分:0)
不,它只会从存储过程的结果中选择一列。所以它将运行sp
中的所有语句