2017-02-21 7 views
0

Мне нужно иметь внутреннее соединение между OLTP и таблицами отчетов.Внутреннее соединение между OLTP и отчетностью

select * from tbltable(nolock) a 
inner join [report].[schema].[tbltablename](nolock) b on b.c1=a.c1 

Это возвращает ошибку.

Почему это так?

+2

Не стесняйтесь. Какая ошибка? –

+0

«Удаленные таблицы-функции-вызовы-недопустимы» @GordonLinoff – vikram

+0

Попробуйте WITH (nolock) – Kostis

ответ

0

Псевдоним должен быть до подсказки NoLock.

Кроме того, использование табличных подсказок без оператора WITH устарело. Парсер иногда видит tbl (nolock) как вызов функции. Попробуйте это вместо:

SELECT * 
FROM tbltable a WITH (NOLOCK) 
    INNER JOIN report.[schema].tbltablename b WITH (NOLOCK) 
    ON b.c1 = a.c1; 
+0

Я пробовал вот так, но не уверен, какая ошибка пришла? – vikram

+0

Вы уверены, что это работает – vikram

+0

Да, я уверен, что это правильный синтаксис nolock. SELECT * FROM sys.tables AS t WITH (NOLOCK) INNER JOIN sys.columns AS c WITH (NOLOCK) ON t.object_id = c.object_id; Что касается вашего конкретного запроса, я не могу сказать. –