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

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

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

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

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

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

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

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

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

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

Только учти, что это будет исполняться с правами запустившего процедуру пользователя
...
Рейтинг: 0 / 0
15.11.2002, 14:05:32
    #32068361
Максим
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где ошибка в запросе
А переменную @s надо декларирывать каким типом, и в нее будет помещаться токо одна запись или все записи выбранные запросом?
...
Рейтинг: 0 / 0
15.11.2002, 14:14:37
    #32068372
vadim_march
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где ошибка в запросе
Эта переменная @s для экзекута :)
а рекордсет вернет твоя ХП.
...
Рейтинг: 0 / 0
15.11.2002, 14:31:46
    #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
15.11.2002, 14:38:50
    #32068379
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Где ошибка в запросе
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Где ошибка в запросе / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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