sql >> Databáze >  >> RDS >> Sqlserver

Jak vygenerovat název tabulky podle data a času?

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;

Nyní můžete také přidat nějakou logiku, aby byl skript imunní vůči chybám, pokud je spuštěn více než jednou v daný den, např.

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

Když jste s logikou spokojeni a chcete příkaz provést, stačí zaměnit komentáře mezi PRINT a EXEC .



  1. Oracle PLSQL vrací jeden typ řádku

  2. Nepodařilo se ověřit nově vytvořené připojení

  3. Maddening Intermittent Wordpress:Chyba při navazování připojení k databázi

  4. Opakovat výsledky podle kategorie, ale zobrazit kategorii pouze jednou