2014-11-26 3 views
0

Я пытаюсь использовать следующий SQL-запрос для извлечения некоторой финансовой информации из базы данных Dynamics NAV в веб-аппликацию на основе PHP.SQL-запрос терпит неудачу при использовании подсказки таблицы в PHP

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, но терпит неудачу, когда я использую его в веб-приложении, хотя 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

видел это? -> http://stackoverflow.com/questions/16054217/mssql-error-1934-occurs-on-insert-to-table-with-computed-column-php-pdo –

+0

Спасибо Марко! Это решило проблему. Большое спасибо. –

ответ

0

Вы уверены, что объект, который вы запрашиваете, является индексированным представлением? Я считаю, что подсказка применима только к индексированным представлениям. И я считаю, что подсказка доступна только на Enterprise Edition SQL Server, но я не уверен

+0

Да, это индексированный вид. Установка параметров SET, как это было предложено в сообщении, с которым связано Марко, решило проблему. –

Смежные вопросы