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

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
есть сформированная символьная строка создания временной таблицы. возможно ли выполнить exec этой строки чтобы временная таблица по завершению этого батча не удалилась ?
7 сен 12, 14:40    [13130268]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Нет.
7 сен 12, 14:52    [13130358]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
##?
Guest
использовать ##tbl ?
7 сен 12, 14:54    [13130376]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
pkarklin
Нет.
Ну почему же... А если временная таблица глобальная?
7 сен 12, 14:55    [13130389]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
это не совсем так, все же можно создать таблицу с одним абсолютно левым полем до exec, а в exec сделать алтер таблицы но мне это не нравится ))
7 сен 12, 14:56    [13130393]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
а про глобальные то я и забыл, спасибо ))
7 сен 12, 14:57    [13130403]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
iap
Ну почему же... А если временная таблица глобальная?


Как то у меня сложилось, что если явно не указано, что таблица должна быть глобальная, то подразумевается локальная. Отсюда и ответ.
7 сен 12, 14:57    [13130407]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
хотя нет, при глобальных имена тогда будут пересекаться при одновременном запуске.
7 сен 12, 14:58    [13130411]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
##?
Guest
добавить в название таблицы spid?
7 сен 12, 15:03    [13130447]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
##?
Guest
(и getdate(), на всякий пожарный)
7 сен 12, 15:05    [13130462]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
тогда к ней и обращаться придется динамически, а хочется после ее формирования обойтись уже без екзеков
7 сен 12, 15:10    [13130517]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Stilet,

М.б. задачу огласите?
7 сен 12, 15:12    [13130534]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Stilet
тогда к ней и обращаться придется динамически, а хочется после ее формирования обойтись уже без екзеков
А почему у меня потребности в такой задаче никогда не возникало?
И я знаю многих таких же.

Мне кажется, это какой-то изощрённый экзотический способ решить какую-то простенькую задачку.
Но если структуру данных правильно спроектировать, то и необходимость решать эту задачку отпадёт сама собой.
7 сен 12, 15:15    [13130576]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
Stilet
Member

Откуда: УФА, БАШКОРТОСТАН
Сообщений: 411
речь идет об обработке произвольной таблицы данной на вход. струтуры все спроектированы но абсолютно различны
7 сен 12, 15:29    [13130721]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Stilet
речь идет об обработке произвольной таблицы данной на вход. струтуры

Обработка таблицы с неизвестной структуорй методами с неизвестными именами для получения неизвестных результатов ?
7 сен 12, 15:41    [13130818]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
andreykond
Member

Откуда:
Сообщений: 65
С глобальными таблицами лучше не связываться, потому что сложно определить в какой момент она освободиться может оказаться что этот момент будет не самым подходящим. Я так понимаю основная проблема связана с созданием временных таблиц из процедур мы используем следующую хитрость создаем процедуру которая нам возвращает varchar(max) в виде скрипта для создания таблиц. Перед запуском модуля мы запускаем эту процедуру и выполняем запрос все временные процедуры живут пока не закроется модуль.

Сейчас еще думаю как можно еще избавиться от этой процедуры.
В sql 2008 можно создавать табличные типы. Можно попробовать такой пример
create type FileDetailsType as table
(
FileName varchar(50),
CreatedDate varchar(50),
Size decimal(18,0)
)
declare @t FileDetailsType
select *
into #t from @t
14 сен 12, 08:21    [13161855]     Ответить | Цитировать Сообщить модератору
 Re: динамическое создание временных таблиц  [new]
Читатель неместный
Guest
в процедуре создаешь глоб врем таблицу (можно с фиксированным именем) нужной структуры
после возврата из процедуры переливаешь данные во временную таблицу
select * into #tabl from ##tabl
и удаляешь глоб врем таблицу
Ну если процедура тормозная и есть вероятность пересечения вызовов из разных сессий, то имя глоб врем таблицы тоже нужно динамически сформировать (говорили про спид)
--вижу уже есть подобный ответ, но вси равно пульну
14 сен 12, 09:08    [13162024]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить