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

Откуда:
Сообщений: 8
Люди, хелп. Спасите. Такая проблема. Хочу создать временную таблицу с уникальным именем, но не в базе TEMPDB, как это можно сделать?
2 июл 03, 18:43    [249195]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы  [new]
cvasil
Member

Откуда:
Сообщений: 519
Включайте в название таблицы spid текущей сессии (@@SPID).
Перед созданием не забудте проверить существование таблицы с этим именем.

Но вообще-то создавать объекты в своей базе по ходу работы приложения - не очень хорошая практика. Лучше сделать одну таблицу заранее, а строки в ней разделять между сессиями по @@SPID.
2 июл 03, 19:41    [249256]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы  [new]
Gorden
Member

Откуда:
Сообщений: 92
Насколько мне известно, SQL Server не создает временные таблицы, кроме как в TEMPDB. Поэтому Вам скорее всего придется на время создавать обычную таблицу в своей базе и удалять ее, когда она больше не нужна.


USE Ваша база

DECLARE @table_name nchar(38)
DECLARE @table_define nvarchar(2000)

/*Генерируем уникальное имя таблицы*/
SET @table_name = '[' + CAST(NEWID() AS char(36)) + ']'

/*Присваиваем переменной скрипт создания таблицы*/
SET @table_define = 'CREATE TABLE ' + @table_name + ' ( column1 int not null, column2 ... )'

/*Выполняем скрипт создания таблицы*/
EXEC sp_executesql @table_define


Какие-то действия .........................


/*Удаляем таблицу*/
DROP TABLE @table_name
2 июл 03, 21:08    [249319]     Ответить | Цитировать Сообщить модератору
 Re: Создание таблицы  [new]
Alex__2003
Member

Откуда:
Сообщений: 8
Спасибо большое. Очень Вы мне помогли
3 июл 03, 14:17    [250167]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить