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

Откуда:
Сообщений: 24
Необходимо создавать временную таблицу, причем имя её будет разное в зависимости от переданного параметра. Грубо говоря передается строка, нужно создать таблицу с именем которое хранится в этой строке
exec не подойдет
5 фев 13, 09:19    [13875652]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
JIEXA72
exec не подойдет


почему? а sp_executesql подойдет?
5 фев 13, 09:47    [13875744]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
Shurgenz
JIEXA72
exec не подойдет


почему? а sp_executesql подойдет?
Пример приведите.

А по теме: вопрос настолько абсурден, что нет слов.
Интересно, и в чём глубокий смысл во временной таблице с переданным именем?
5 фев 13, 09:52    [13875764]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
PaulYoung
Member

Откуда: Москва
Сообщений: 2551
iap,

возможно, она у него будет глобальная (##)
5 фев 13, 09:54    [13875773]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
aleks2
Guest
iap
Shurgenz
пропущено...


почему? а sp_executesql подойдет?
Пример приведите.

А по теме: вопрос настолько абсурден, что нет слов.
Интересно, и в чём глубокий смысл во временной таблице с переданным именем?

Ну MS же сделала табличные параметры...

JIEXA72
exec не подойдет

Значит никак.
5 фев 13, 09:56    [13875776]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
Таблица глобальная

JIEXA72
exec не подойдет

Значит никак.[/quot]
Печаль
5 фев 13, 10:08    [13875824]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
Если бы можно было сделать как я хочу, то я бы мог избавится от кучи лишнего говнокода. Я знал, что нельзя, но в душе теплилась надежда, что можно. Ну нет дак нет.
5 фев 13, 10:11    [13875843]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
может подойдет вариант - постоянная таблица с полем @@SPID?
5 фев 13, 10:17    [13875865]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
Shurgenz
Member

Откуда: Питер
Сообщений: 1938
JIEXA72
Если бы можно было сделать как я хочу, то я бы мог избавится от кучи лишнего говнокода. Я знал, что нельзя, но в душе теплилась надежда, что можно. Ну нет дак нет.


а в чем глубинный смысл нежелания использовать exec или sp_executesql?
5 фев 13, 10:18    [13875872]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
Таблица будет использоваться в разным процедурах использовать переменные и данные из этой процедуры, и разными пользователями одновременно с данными которые нужно разделять. Охота сделать все красиво и понятно без лишнего кода "генерации" sql запроса при этом, что бы все работало без глюков
5 фев 13, 10:31    [13875946]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
JIEXA72
Таблица глобальная
Тогда можно. В динамическом SQL.
EXEC(N'CREATE TABLE '+@TableName+N'(Определение полей и констрейнтов)');
Понятно, что всё это в процедуре (не в функции)
5 фев 13, 10:31    [13875948]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31430
JIEXA72
Если бы можно было сделать как я хочу, то я бы мог избавится от кучи лишнего говнокода
Разве передача имени таблицы в строке не его признак?

Вы представьте, в C# передавать имя переменной или текст тела метода класса в строке :-)
5 фев 13, 10:33    [13875955]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
JIEXA72
Таблица будет использоваться в разным процедурах использовать переменные и данные из этой процедуры, и разными пользователями одновременно с данными которые нужно разделять. Охота сделать все красиво и понятно без лишнего кода "генерации" sql запроса при этом, что бы все работало без глюков


И где здесь временная таблица ? Постоянная.
5 фев 13, 10:33    [13875956]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
Вопрос, можно сделать так и ли нет? Нет. Значит @@SPID
5 фев 13, 10:35    [13875962]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
Glory
Member

Откуда:
Сообщений: 104760
JIEXA72
Таблица будет использоваться в разным процедурах использовать переменные и данные из этой процедуры, и разными пользователями одновременно с данными которые нужно разделять. Охота сделать все красиво и понятно без лишнего кода "генерации" sql запроса при этом, что бы все работало без глюков

И почему это не может быть временная таблица с постоянным именем ? Которая создана ДО всех этих процедур
5 фев 13, 10:48    [13876060]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
JIEXA72
Member

Откуда:
Сообщений: 24
Ни знаю. Я такого не говорил.
5 фев 13, 11:20    [13876268]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Описали б лучше б саму задачу а не говнометод, который сразу пришел на ум.
5 фев 13, 11:44    [13876482]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34619
JIEXA72,

Легче селективную процедуру написать (Табличную функцию, функцию, возвращающую набор данных).
5 фев 13, 12:56    [13877137]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
JIEXA72
Необходимо создавать временную таблицу, причем имя её будет разное в зависимости от переданного параметра. Грубо говоря передается строка, нужно создать таблицу с именем которое хранится в этой строке
exec не подойдет
Это элементарно делается... из приложения. :)

У нас они создаются десятками. В вашем случае недопустимо это делать например в ХП. Ее просто никто не увидит.
5 фев 13, 13:42    [13877551]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
ambarka_max
Member

Откуда: Россия
Сообщений: 517
JIEXA72
...в разным процедурах использовать ....и разными пользователями одновременно ...

Очевидно же, что нужна одна постоянная таблица с нужным полем (аналогично @@SPID) для фильтрации (собственно это поле будет имя вашей "временной таблицы").
5 фев 13, 16:16    [13878796]     Ответить | Цитировать Сообщить модератору
 Re: Имя временной таблицы параметром  [new]
ambarka_max
Member

Откуда: Россия
Сообщений: 517
А если боитесь забыть написать где-то условие WHERE таблица=@таблица, создайте табличную функцию с входным параметром @таблица, и вбирайте данные только через эту функцию
5 фев 13, 16:19    [13878828]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить