Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выполнение длинных запросов / 9 сообщений из 9, страница 1 из 1
08.08.2002, 22:00:28
    #32042014
Igor@k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение длинных запросов
Проблема заключается в превышении ограничиния в 8000 символов при составлении строки динамического сиквела. Разбивать на несколько переменных и затем склеивать в EXECUTE (@Sql1+@Sql2+...) проблематично (что можно было - разделил), так как основная часть запрос генерируется в цикле и число итераций его заранее неизвестно. Теоретически sp_executesql работет с ntext, но работать с ним в ХП вроде как нельзя. Или все-таки как-то можно? Спасибо.
...
Рейтинг: 0 / 0
08.08.2002, 22:28:22
    #32042018
Сергей Тихонов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение длинных запросов
Можно.
...
Рейтинг: 0 / 0
08.08.2002, 22:41:00
    #32042020
Igor@k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение длинных запросов
И как? Хотелось бы все-таки не через поле в таблице.
...
Рейтинг: 0 / 0
09.08.2002, 23:09:13
    #32042297
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение длинных запросов
Можно записать скрипт во внешний текстовый файл и затем выполнить с помощью osql/isql
...
Рейтинг: 0 / 0
07.10.2002, 16:57:11
    #32056079
A.Rovdo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение длинных запросов
У меня совершенно аналогичная проблема. Запись в файл не устраивает. Упоминаемый здесь метод работы с ntext действительно должен работать теоретичеки, но как реализовать его практически?
...
Рейтинг: 0 / 0
07.10.2002, 17:24:33
    #32056093
AAron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение длинных запросов
я вот почитал в BOL, там написано, что текст запроса должен обязательно конвертироваться в ntext, и кажется нет ни слова о том, что этот параметр м.б. сам по себе ntext.
...
Рейтинг: 0 / 0
07.10.2002, 17:54:38
    #32056117
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение длинных запросов
@string_variable
Is the name of a local variable. @string_variable can be of char, varchar, nchar, or nvarchar data type with a maximum value of the server's available memory. If the string is greater than 4,000 characters, concatenate multiple local variables to use for the EXECUTE string. For more information about system-supplied SQL Server data types, see Data Types.

Про text ни слова. Боюсь EXECUTE (@Sql1+@Sql2+...) - единственный выход. Хотя если вы в состоянии загнать строку данамического SQL в ntext, то какие проблемы её оттуда вытащить в массив из, скажем 10 переменных типа nvarchar(4000) и затем запустить EXECUTE (@Sql1+@Sql2+...@Sql10), тогда максимальная длинна запроса будет 40К
...
Рейтинг: 0 / 0
08.10.2002, 17:40:51
    #32056449
A.Rovdo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение длинных запросов
Метод хоть и нельзя назвать удобным, но он работает (лично мне казалось, что при сложении varchar переменных обрезание до 8000 тоже должно иметь место, ан нет). Полагаю, что других способов и не найти.
Спасибо за совет.
...
Рейтинг: 0 / 0
08.10.2002, 17:47:13
    #32056455
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение длинных запросов
Я сам задавал аналогичный вопрос где-то там далеко внизу. Лично я выкрутился на EXECUTE (@Sql1+@Sql2+...+@Sql10). А что, 80'000 байт тоже мало? Сколько же времени занимает компиляция этих запросов? Сэр, вы попробуйте глазами прочитать запрос такого размера.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выполнение длинных запросов / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]