我尝试使用以下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调用时运行。但是查询变得非常慢,因为它没有利用表上的索引视图。
有谁知道这里有什么问题?
答案 0 :(得分:0)
您确定要查询的对象是索引视图吗?我相信该提示仅适用于索引视图。我相信该提示仅适用于SQL Server企业版,但我并不乐观