2

我有以下查询(作为存储过程),我喜欢从针对 SQL server 2014 的应用程序(由 C# 编写)触发它,我还应该提到 dbo.tbl_vwPlanningSalesProc 是一个内存优化表!

  • 顺便说一句,我已经在我的连接字符串中禁用了“多个活动结果集(MARS)”!

问题:当我从 management studio 2014 触发查询时,我可以设置我期望得到的结果,但是当我从应用程序(由 C# 和 .Net 4.5.1 编写)触发完全相同的查询时,我得到以下错误:


内存优化表不支持分布式查询和多个活动结果集 (MARS)。


查询:

ALTER PROC [dbo].[spWeeklyStockSheetGetProcurementBrand]

AS 
SELECT   
         Brand = v.Brand       
         ,RowLevel = CASE WHEN v.Brand = 'N/A' THEN 2 ELSE 1 END
         ,m = max([year])
FROM dbo.tbl_vwPlanningSalesProc v
WHERE datatype = 'Procurement'
group by brand 
ORDER BY RowLevel,Brand
4

1 回答 1

0

如果您已经在连接字符串中设置了“MultipleActiveResultSets=False”,则可能会发生这种情况,因为内存优化表不支持“CASE”功能。您可以在此处找到所有不受支持的结构https://msdn.microsoft.com/en-us/library/dn246937.aspx

于 2015-07-06T10:40:07.733 回答