#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');