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

Откуда:
Сообщений: 87
Добрый день.

Скрипт
SELECT 
1 as '1', 2 as '2'
INTO ##test

создаст глобальную временную таблицу ##test

Почему таблица не создается из блока "Выполнение инструкции T-SQL" в плане обслуживания?
14 янв 22, 15:34    [22421142]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
msLex
Member

Откуда:
Сообщений: 9647
cad2206
Добрый день.

Скрипт
SELECT 
1 as '1', 2 as '2'
INTO ##test


создаст глобальную временную таблицу ##test

Почему таблица не создается из блока "Выполнение инструкции T-SQL" в плане обслуживания?


С чего вы взяли, что она не создается?
Просто она автоматически удаляется.

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql?view=sql-server-ver15
Global temporary tables are automatically dropped when the session that created the table ends and all other tasks have stopped referencing them.
14 янв 22, 15:43    [22421152]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
komrad
Member

Откуда:
Сообщений: 6015
cad2206

Почему таблица не создается из блока "Выполнение инструкции T-SQL" в плане обслуживания?

какие у этого симптомы?
ошибки есть?
14 янв 22, 15:44    [22421153]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
cad2206
Member

Откуда:
Сообщений: 87
после выполнения в редакторе скриптов, запрос:
select * from ##test

выдает данные.

после выполнения из плана обслуживания тот же запрос выдает: Недопустимое имя объекта "##test".
14 янв 22, 15:47    [22421156]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
cad2206
Member

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

точно, не обратил внимания, что не закрывал окно скрипта создания таблицы. После его закрытия таблица удаляется.
14 янв 22, 15:54    [22421163]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
komrad
Member

Откуда:
Сообщений: 6015
cad2206
после выполнения в редакторе скриптов, запрос:
select * from ##test

выдает данные.

после выполнения из плана обслуживания тот же запрос выдает: Недопустимое имя объекта "##test".

вероятно ваш план обслуживания закрывает сессиию с ##таблицей и открывает другую сессию, для которой такая таблица не известна (удалена)
14 янв 22, 15:55    [22421166]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
cad2206
Member

Откуда:
Сообщений: 87
Я правильно понимаю, передать данные из обного блока в плане выполнения в другой (ну т.е. в первом блоке создать таблицу, а во втором использовать ее данные) временными таблицами не получится ни как?
14 янв 22, 15:56    [22421171]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
msLex
Member

Откуда:
Сообщений: 9647
cad2206
Я правильно понимаю, передать данные из обного блока в плане выполнения в другой (ну т.е. в первом блоке создать таблицу, а во втором использовать ее данные) временными таблицами не получится ни как?



не помню как в майнтенс плане, а в обычном ssis у коннекта есть свойство "RetainSameConnection"
14 янв 22, 16:07    [22421189]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
cad2206
Member

Откуда:
Сообщений: 87
В плане обслуживания нет. Похоже единственный вариант, использовать промежуточную таблицу из БД...
14 янв 22, 16:23    [22421200]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
Владислав Колосов
Member

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

зачем она вообще нужна? SSIS пакеты прекрасно работают со своими наборами данных и потоками.
14 янв 22, 16:51    [22421211]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
cad2206
Member

Откуда:
Сообщений: 87
Владислав Колосов,

в вверенной мне экосистеме SSIS не использовали. Впрочем, как и я. Только начинаю задумываться о ее необходимости и альтернативе планам обслуживания.
14 янв 22, 16:58    [22421215]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
Владислав Колосов
Member

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

план обслуживания - это и есть SSIS пакет.
14 янв 22, 17:20    [22421229]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
msLex
Member

Откуда:
Сообщений: 9647
Владислав Колосов
cad2206,

план обслуживания - это и есть SSIS пакет.

не совсем

это своеобразный ssis пакет (со своими ограничениями) + job
14 янв 22, 17:21    [22421231]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
cad2206
Member

Откуда:
Сообщений: 87
Владислав Колосов,

хм, тогда где это искать:

автор
не помню как в майнтенс плане, а в обычном ssis у коннекта есть свойство "RetainSameConnection"


?)
14 янв 22, 17:54    [22421244]     Ответить | Цитировать Сообщить модератору
 Re: Создание временной глобальной таблицы в плане обслуживания  [new]
Владислав Колосов
Member

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

согласен, с ограничениями построителя. Однако, если создать обычный SSIS проект, то в нем vj;yj cjplfnm такие же задачи, как и в плане обслуживания и его можно поместить в job. Это если требуется расширенная логика обслуживания, не предусмотренная стандартным построителем плана обслуживания.
15 янв 22, 15:44    [22421564]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить