Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie erstelle ich einen Tabellennamen nach Datetime?

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;

Jetzt möchten Sie vielleicht auch etwas Logik hinzufügen, um das Skript fehlerfrei zu machen, wenn es mehr als einmal an einem bestimmten Tag ausgeführt wird, z. B.

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

Wenn Sie mit der Logik zufrieden sind und den Befehl ausführen möchten, tauschen Sie einfach die Kommentare zwischen PRINT und EXEC .