Как предоставить динамическое имя таблицы с указанием даты и времени в запросе SQL Server

#sql-server #dynamicquery

#sql-сервер #dynamicquery

Вопрос:

Мне нужно сделать резервную копию таблицы в SQL Server, но я не хочу давать конкретное имя конкретной резервной таблице, потому что за день может быть n резервных копий этой конкретной таблицы. по этой причине мне приходится менять имя резервной таблицы всякий раз, когда мы беремрезервное копирование. Мне нужен запрос в SQL Server, чтобы он добавлял дату / время к имени резервной таблицы. Запрос должен быть таким, как показано ниже:

 Select *
into TableNameBackup_DateTime from TableName
 

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

 Select * into 'TableNameBackup_' GetDate() from TableName
 

Ответ №1:

Это можно решить с помощью приведенного ниже запроса

    Declare @tablename AS nvarchar(80);
   SET @tablename='TableNameBackup_'  
   replace(replace(replace(convert(varchar(30),getdate(),121),'/','_'),':','_'),'.','_');
   EXECUTE('Select * into '  @tablename  ' from TableName');