Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Создание новых таблиц с переменным именем  [new]
Guestiks
Guest
Здравствуйте.
Описание проблемы: Надо каждый квартал создавать таблицу с именем table01012009, table01042009, table01072009,table01102009 - это на 2009 год, хотелось бы написать процедурку по созданию таблицы с переменной начала квартала и повесить job на процедуру или копировать таблицу с изменением имени по вышеописанному примеру.
Вопрос: Не могу создать таблицу с динамическим именем.

declare @NAME NVARCHAR(50)
set @NAME = 'table' + "сдесь дата начала квартала"

Create Table @Name
(t1 nvarchar(3) not null,
t2 nvarchar(10),
t3 nvarchar(10)
)

Возможно ли это вообще создать таблицу с динамическим именем, т.е. создавать постоянно таблицы в имени которого присутствует сгенерированная дата?
26 май 09, 12:55    [7227995]     Ответить | Цитировать Сообщить модератору
 Re: Создание новых таблиц с переменным именем  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
exec(@sqlstatment)

для спящего время бодрствования равносильно сну
26 май 09, 13:17    [7228148]     Ответить | Цитировать Сообщить модератору
 Re: Создание новых таблиц с переменным именем  [new]
Anatol Botnaru
Member

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

Попробуй так, может это то самое
DECLARE @SQL AS VARCHAR(MAX)
SET @SQL = 'CREATE TABLE [Table' + CONVERT(VARCHAR(8), GETDATE(), 112) + ']'
SET @SQL = @SQL + '('
SET @SQL = @SQL + 't1 nvarchar(3) not null,'
SET @SQL = @SQL + 't2 nvarchar(10),'
SET @SQL = @SQL + 't3 nvarchar(10)'
SET @SQL = @SQL + ')'
EXEC (@SQL)
26 май 09, 13:19    [7228169]     Ответить | Цитировать Сообщить модератору
 Re: Создание новых таблиц с переменным именем  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
https://www.sql.ru/faq/faq_topic.aspx?fid=104
26 май 09, 13:20    [7228182]     Ответить | Цитировать Сообщить модератору
 Re: Создание новых таблиц с переменным именем  [new]
Guestik'
Guest
Спасибо всем
26 май 09, 14:02    [7228583]     Ответить | Цитировать Сообщить модератору
 Re: Создание новых таблиц с переменным именем  [new]
Guestiks
Guest
Сделал как написал Anatol Botnaru. Все получилось.
и даже получилось этим методом вставить данные порядка 700 тыс строк

DECLARE @SQL AS VARCHAR(8000)
SET @SQL = 'CREATE TABLE [Table' + CONVERT(VARCHAR(8), GETDATE(), 112) + ']'
SET @SQL = @SQL + '('
SET @SQL = @SQL + 't1 nvarchar(3) not null,'
SET @SQL = @SQL + 't2 nvarchar(10),'
SET @SQL = @SQL + 't3 nvarchar(10)'
SET @SQL = @SQL + ')'
EXEC (@SQL)


DECLARE @Adr AS VARCHAR(8000)
SET @Adr = 'insert into [Table' + CONVERT(VARCHAR(8), GETDATE(), 112) + ']' + ' select a1,a2,a3 from tablestar where a1>0 and a2 <0'
exec (@adr)

Большое всем спасибо
26 май 09, 16:53    [7230245]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить