2016-12-30 4 views
2

Я пытаюсь сделать это:SQL-сделать строку имя_таблицы, которая включает GETDATE

select * into 'DataBackup'+convert(varchar(10),getdate(),112)+'byMike' from SomeTable 

но она возвращает ошибку. Я также попытался это одно, но безрезультатно:

select * into 
(select 'DataBackup'+convert(varchar(10),getdate(),112)+'byMike') 
from 
SinavSorulari 

В принципе, я пытаюсь сделать строку, которая гласит: DataBackup20161230byMike и я хочу использовать его с `SELECT * INTO. Я могу это сделать?

Спасибо.

+0

СОВЕТ: Вы обычно лучше, сделав ** фактическое резервное копирование **. Если вы попытаетесь «восстановить», могут возникнуть сложности с таким «ручным» резервным копированием. Чтобы назвать несколько: триггеры, столбцы идентификации, столбцы timestamp/rowversion. Конечно, тот факт, что вы просите о том, чтобы легко включить текущую дату, настоятельно свидетельствует о том, что вы не считаете, что ваше «ручное резервное копирование» должно быть *** чрезвычайно *** ad-hoc. Заключение, вы ожидаете использовать его гораздо чаще, чем вам нужно! *** Скорее используйте регулярные резервные копии. *** –

ответ

1

Попробуйте это:

declare @query varchar(max) 
set @query='select * into DataBackup'+convert(varchar(10),getdate(),112)+'byMike from some_table ' 
exec (@query) 
+0

Работал! Благодаря! – Ugur

0
declare @tablename = 'DatabaseBackup'+convert(varchar(10),getdate(),112)+'byMike' 

declare @yoursourcetable = 'Mytable' 

declare @selectsql 
set @selectsql='select * into '+ @tablename +' from '[email protected] 

sp_executesql (@selectsql) 

Я не проверял, но должно работать

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