Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да генерирам име на таблица по дата и час?

DECLARE @d CHAR(10) = CONVERT(CHAR(8), GETDATE(), 112);

DECLARE @sql NVARCHAR(MAX) = N'select  *
into    report_temp.MSK_Traffic_Backup_' + @d + '
from    property.door_traffic;';

PRINT @sql;
--EXEC sys.sp_executesql @sql;

Сега може също така да искате да добавите някаква логика, за да направите скрипта имунизиран срещу грешки, ако се изпълнява повече от веднъж за даден ден, напр.

DECLARE @d CHAR(10) = CONVERT(CHAR(8), GETDATE(), 112);

IF OBJECT_ID('report_temp.MSK_Traffic_Backup_' + @d) IS NULL
BEGIN
  DECLARE @sql NVARCHAR(MAX) = N'select  *
  into    report_temp.MSK_Traffic_Backup_' + @d + '
  from    property.door_traffic;';

  PRINT @sql;
  --EXEC sys.sp_executesql @sql;
END

Когато сте доволни от логиката и искате да изпълните командата, просто разменете коментарите между PRINT и EXEC .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разделя разделен низ в SQL Server, без да създавам функция?

  2. Актуализация на SQL, същата заявка, различни резултати всеки път

  3. Актуализирайте поле на съществуваща таблица с Auto Increment Logic

  4. Сравнение на SQL данни - Липсват някои таблици

  5. Филтрирайте по изходна клауза sql