Я довольно новичок в использовании SQL, и у меня возникают трудности с пониманием старых запросов и их повторным использованием.
Особенно полезность команд EXECUTE
и OPENQUERY
при работе на связанных серверах.
Код, который я использую, работает, потому что я его не создавал. Но в какой-то части я не совсем понимаю, как это работает. Мне нужно лучше понять это, чтобы иметь возможность создавать свои собственные запросы.
Я читал документацию, подобную этой (https://docs.microsoft.com/fr-fr/sql/t-sql/language-elements/execute-transact-sql?view=sql-server-2017), но я все еще не могу понять, почему EXEC
необходим при работе на связанном сервере.
EXEC('
SELECT Cell_id,
CAST(Trafic_Voix as float) as Trafic_Voix
FROM OPENQUERY(myperf_ora,''
SELECT Cell_id,
MAX( (TFTRALACC+THTRALACC)/360 ) as Trafic_voix
FROM VIRTUO.ERI_CELL_TF_CHAN_FR_TAB_V
WHERE tstamp BETWEEN '''''+@DATE_DE_DEBUT+''''' AND '''''+@DATE_DE_FIN+'''''
GROUP BY Cell_id
'')
')
Если это что-то изменит, я использую Microsoft SQL Server Management Studio.
Когда я убираю EXEC
из запроса, он больше не работает и показывает мне сообщения об ошибках. Я хотел бы знать, почему использование этой команды является обязательным?
То же самое для OPENQUERY