Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Временные таблицы в курсорах  [new]
Dan Khatskevich
Member

Откуда:
Сообщений: 324
коллеги почему при выполнении курсора с временно таблицей мне пишет Must declare the table variable "@main_table".?

Хотя он принимает такую таблицу как #main_table. Но тогда как будет вести себя запрос при выполнении его одновременно несколькими пользователями. ?
ниже часть кода.
MSSQL 2005 SP3 WIN 2K3
declare @main_table table
(
[Type] nvarchar (60),
CallDate nvarchar (60),
CallID nvarchar (60) NULL,
BusnessNumber nvarchar (60),
Number nvarchar (60),
[Sum] nvarchar (60),
[Time] nvarchar (60),
INOUT nvarchar (60),
[Service] nvarchar (60),
NumberING nvarchar (60) ,
LOngNumber nvarchar (60) ,
FULL_Name1 nvarchar (60) ,
KorpKey1 nvarchar (60),
ManCEDS nvarchar (60)

)


Declare Cur cursor for
select ceds from @allceds;
Open Cur;
While(0=0)
begin
Fetch Next from Cur into @tn
if @@Fetch_Status<>0 Break;
Set @aSQL='insert into @main_table Exec get_num N''' + @tn + '''';
print @aSQL
exec(@aSQL);
end;
--select * from #main_table
Close Cur;
Deallocate Cur;
15 сен 09, 09:14    [7658719]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы в курсорах  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Dan Khatskevich,

Внутри динамического SQL переменные (в том числе табличные), объявленные "снаружи", не видны.
А временные таблицы видны!
15 сен 09, 09:27    [7658770]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы в курсорах  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Dan Khatskevich
Хотя он принимает такую таблицу как #main_table. Но тогда как будет вести себя запрос при выполнении его одновременно несколькими пользователями. ?
Нормально будет вести.
Открой несколько коннектов, насоздавай в них временных таблиц, наполни их данными и проверь.
Загляни, при этом в табличку sys.objects базы tempdb...
А ещё лучше, начни с чтения BOL! ;-)

Сообщение было отредактировано: 15 сен 09, 09:33
15 сен 09, 09:32    [7658783]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы в курсорах  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
По вопросу про временные таблицы:
локальные врем. таб. создаются отдельно для каждого сеанса ( сервер к имени таблицы добавляет суфикс)

--------------------------------------------------------------
Дьявол кроется в деталях.
15 сен 09, 09:34    [7658786]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы в курсорах  [new]
Dan Khatskevich
Member

Откуда:
Сообщений: 324
tpg,

т.е. для каждого пользователя будет создана своя #main_table?
15 сен 09, 09:37    [7658795]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы в курсорах  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31173
Dan Khatskevich
tpg,

т.е. для каждого пользователя будет создана своя #main_table?
да
15 сен 09, 09:37    [7658799]     Ответить | Цитировать Сообщить модератору
 Re: Временные таблицы в курсорах  [new]
Dan Khatskevich
Member

Откуда:
Сообщений: 324
alexeyvg,

Благодарю :)
15 сен 09, 09:38    [7658803]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить