У меня есть OpenQuery (используется в SQL2005 для запуска запроса к устаревшей базе данных).Я строю строку для запуска, чтобы я возвращал данные за последние 6 месяцев.
Проблема, с которой я столкнулся, связана с '||'конкатать
Это работает на устаревшей системе:
SELECT
EVENT_DATE || ' ' || EVENT_TIME as EVENTDateTime
FROM
EVENT
Это работает в SQL2005 через связанный SQL Server:
Declare @Query nvarchar(MAX)
Set @Query = N'
SELECT
*
FROM
OPENQUERY(PATCOMLIVE,
''SELECT
*
FROM
root.ESDB_EVENT as EV
''
) as OpenQ';
exec sp_executesql @Query
Это НЕ работает:
Declare @Query nvarchar(MAX)
Set @Query = N'
SELECT
*
FROM
OPENQUERY(PATCOMLIVE,
''SELECT
EVENT_DATE || '' '' || EVENT_TIME
FROM
root.ESDB_EVENT as EV
''
) as OpenQ';
exec sp_executesql @Query
И при этом:
EVENT_DATE '|'| '' '' '|'| EVENT_TIME
Я знаю, что упускаю что-то простое ... но ||объединять строки - значит все портить, хотя на устаревшей системе она работает сама по себе.