Я могу использовать следующий код для крошечных маленьких запросов:
DECLARE @sql VARCHAR(8000)
SET @sql = 'SELECT * FROM myTable'
Exec @sql
Вышеприведенный метод очень полезен для поддержки большого количества кода, особенно когда нам нужно внести изменения один раз и отразить ихповсюду.
Моя проблема в том, что мой запрос (это всего лишь один запрос), который я хочу передать в переменную @sql, использует более 25 объединений таблиц, некоторые из них во временных переменных таблицы, включают сложные операции иследовательно, его длина превышает 8000 символов.
Я хотел бы использовать тип данных TEXT для хранения этого запроса, но MSDN показывает предупреждающее сообщение о том, что Microsoft планирует удалить типы данных Text, NText и Image из следующих версий.,Я хотел бы, чтобы мой код работал и в будущем.
Я думал о сохранении этого запроса в отдельном файле, но, поскольку он использует объединения переменных таблицы и других параметров, специфичных для процедуры, я сомневаюсь, что это возможно.
Пожалуйста, скажите мне способ сохранить большой запрос в переменной и выполнить его несколько раз в процедуре.