2013-05-02 2 views
0

Возможно ли создать таблицу в SQL динамически. В моем веб-приложении мне нужно сохранить данные в таблице с именем «INFO_2013» за этот год (т.е.) 2013. Когда системная дата изменится на 2014, тогда необходимо создать новую таблицу как «INFO_2014» и значения должны быть добавлены в эту таблицу.Идея для создания таблицы динамически

ПРИМЕЧАНИЕ. Также таблица должна находиться в одной и той же БД.

ответ

6

Я бы не использовал этот подход.

Почему бы не создать единую таблицу с колонкой YEAR, которая определит, из какого года она?

В дополнение к этому, если вы woried о стол, попадающего в большой, вы можете захотеть взглянуть на Creating Partitioned Tables and Indexes

Может взглянуть на них слишком

Index Basics

Types of Indexes

+0

Ya @astander! это лучший подход. Но главное - мне нужно вставить 50 записей ежедневно ... В этом случае в течение 1 месяца я должен обновить около 1500 записей. что происходит в течение 1 года. Если я храню значение почти 5 лет, то что происходит ??? Вот почему я ищу решение .... –

+0

Это может быть даже проще. Если в таблице есть поля даты или времени, они могут использоваться для определения года. –

+0

@Elango_Thanumalayan, вы описываете очень маленькую базу данных. Кроме того, это то же количество записей независимо от того, сколько таблиц у вас есть. подход наблюдателя делает жизнь намного проще, чем то, что вы созерцаете. –

0

Попробуйте следующее:

DECLARE @sql NVARCHAR(2000) 
DECLARE @table NVARCHAR(100) 

SET @table = 'INFO_2013' 

SET @sql = N'CREATE TABLE '[email protected]+' 
(
RollNumber INT 
,Name VARCHAR(50) 
)' 

EXECUTE SP_EXECUTESQL @sql 
+0

Несмотря на то, что этот ответ отвечает на вопрос ОП, [ответ на вопрос] (http://stackoverflow.com/a/16337602/745511) является лучшей практикой. –

+0

@ Ану, Можете ли вы объяснить мне эти вопросы. –

+0

Это очень просто, я создал строку с командой Create table, после чего я ее выполнил. Скажите, в какой части у вас есть запрос. Благодарю. – Anvesh

Смежные вопросы