在PHP中使用表提示时,SQL查询失败

时间:2014-11-26 14:40:48

标签: php sql-server pdo

我尝试使用以下SQL查询从Dynamics NAV数据库中检索一些财务信息到基于PHP的Web应用程序。

SELECT SUM([SUM$Amount]) AS total 
FROM [Company Name$G_L Entry$VSIFT$1] WITH(NOEXPAND) 
WHERE [Posting Date]>='2014-01-01' AND 
      [Posting Date]<='2014-11-26' AND 
      [G_L Account No_]='3020'

查询在SQL Server Management Studio中直接使用时工作正常,但是当我在Web应用程序中使用PHP PDO时,它会失败。我收到以下错误:

Array (
  [0] => HY000
  [1] => 1934
  [2] => General SQL Server error: Check messages from the SQL Server [1934] (severity 16) [SELECT SUM([SUM$Amount]) AS total FROM [Company Name$VSIFT$1] WITH(NOEXPAND) WHERE [Posting Date]>='2014-01-01' AND [Posting Date]<='2014-11-26' AND [G_L Account No_]='3020']
  [3] => -1
  [4] => 16 
)

我在服务器日志中找不到其他错误信息。

问题在于“WITH(NOEXPAND)” - 查询的一部分。如果我删除它,查询也会在从PHP调用时运行。但是查询变得非常慢,因为它没有利用表上的索引视图。

有谁知道这里有什么问题?

1 个答案:

答案 0 :(得分:0)

您确定要查询的对象是索引视图吗?我相信该提示仅适用于索引视图。我相信该提示仅适用于SQL Server企业版,但我并不乐观