sql >> Databasteknik >  >> RDS >> Sqlserver

Hur genererar man tabellnamn efter datum och tid?

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;

Nu kanske du också vill lägga till lite logik för att göra skriptet immunt mot fel om det körs mer än en gång under en viss dag, t.ex.

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

När du är nöjd med logiken och vill köra kommandot byter du bara kommentarerna mellan PRINT och EXEC .



  1. hur man ändrar blockstatus för att infoga i 10g med en knappavtryckare

  2. Okänd kolumn när du använder alias mysql

  3. PHP XML:Illegal Offset, men det är i array?

  4. Begränsar mysql-tabellen till en viss storlek och tar automatiskt bort äldsta poster