powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Где ошибка в запросе
9 сообщений из 9, страница 1 из 1
Где ошибка в запросе
    #32068319
Максим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Подскажите, пожалуйста, где ошибка в данном запросе:
declare @table char(10)
set @table='events'
select top 10 itime,area,grp,msg from @table
...
Рейтинг: 0 / 0
Где ошибка в запросе
    #32068325
Фотография Lexis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такое работать не будет однозначно
надо использовать
sp_executesql
или
ECECute
Код: plaintext
1.
EXEC('name_of_8000_char_string' + 'another_name_of_8000_char_string')
...
Рейтинг: 0 / 0
Где ошибка в запросе
    #32068327
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set @table='events'

А это что за строчка ? =:()

Ты же с таблицей работаешь, там insert нужен

select top 10 itime,area,grp,msg from @table

А это что такое?

Однако, перепутал ты, переменная таблица - это такая же, как и обычная временная, только убивать не нужно, сама....

Почитай хоть доку то )
...
Рейтинг: 0 / 0
Где ошибка в запросе
    #32068339
Максим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set @table='events' - это временная строка , потом это будет текст процедуры (@table является входным параметром и значит название таблицы).
...
Рейтинг: 0 / 0
Где ошибка в запросе
    #32068353
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я того, глаза двоятся :))

Нельзя вместо имени таблицы использовать переменную

надо сначала весь текст запихать в переменную, а потом выполнить

set @s = 'select **** from ' + @table + ' where *****'
execute @s

Только учти, что это будет исполняться с правами запустившего процедуру пользователя
...
Рейтинг: 0 / 0
Где ошибка в запросе
    #32068361
Максим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А переменную @s надо декларирывать каким типом, и в нее будет помещаться токо одна запись или все записи выбранные запросом?
...
Рейтинг: 0 / 0
Где ошибка в запросе
    #32068372
vadim_march
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта переменная @s для экзекута :)
а рекордсет вернет твоя ХП.
...
Рейтинг: 0 / 0
Где ошибка в запросе
    #32068377
Фотография Белов Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Максим
Ты должне формировать динамический запрос
т.е. в итоге у тебя должно получиться следующее
Код: plaintext
1.
2.
3.
4.
5.
6.
Declare
   @table_name = 'CUSTOMER',
   @sql varchar( 8000 )

select @sql = 'select TOP 10 ... from ' + @table_name'
exec (@sql)
...
Рейтинг: 0 / 0
Где ошибка в запросе
    #32068379
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Где ошибка в запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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