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

Откуда:
Сообщений: 159
Пришлось разбираться в чужом скрипте, и обнаружил следующее:

select * into #1 from table1 where ...
select * into #2 from table1 where ...
select * into #3 from #1 where ...
и т.д.

Так вот не могу понять что за объявление #1 #2 #3. Запросы выполняются, сервер говорит что столько-то строк перенесено, но в базе данные таблицы не показываются. Как будто это временные таблицы.

Но после первого выполнения запроса, второй раз скрипт запустить нельзя, так как говорит что таблица #1 уже существует(хотя как говорилось их нет в перечне объектов в sysobjects)
17 фев 04, 08:19    [538418]     Ответить | Цитировать Сообщить модератору
 Re: Select ... into  [new]
Trong
Member

Откуда: Novosibirsk
Сообщений: 759
Это и есть временные таблицы. Хранятся в базе tempdb. А при второй попытке ругается потому, что эти талицы нужно за собой удалять.

P.S. BOL - синтаксис select ... into ... from
17 фев 04, 08:21    [538419]     Ответить | Цитировать Сообщить модератору
 Re: Select ... into  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
автор
Как будто это временные таблицы

это и есть временные таблицы

созданные локальныевременные таблицы не удаляются до:
1. сами не удалите
2. не разорвете соединение

т.е. если вы работаете через QA то, выполнив
select * into #t from tab 

после окончания батча таблица #t не удаляется, если же вы закроете окошко данное, или выполните этот скрипт в другом соединении, все пройдет

автор
в базе данных таблицы не показываются

кто вам это сказал?
они находятся в базе tempdb и таблицы находятся в перечне именно этой бд
select * from tempdb..sysobjects where name = '#t'



для спящего время бодрствования равносильно сну
17 фев 04, 08:26    [538423]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить