sql >> Database >  >> RDS >> Sqlserver

Hoe tabelnaam genereren op 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;

Nu wil je misschien ook wat logica toevoegen om het script immuun te maken voor fouten als het meer dan één keer op een bepaalde dag wordt uitgevoerd, bijvoorbeeld

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

Als je tevreden bent met de logica en de opdracht wilt uitvoeren, wissel je gewoon de opmerkingen tussen PRINT en EXEC .



  1. Slaapstand en postgreSQL met Grails

  2. Oracle .Net ManagedDataAccess-fout:kan het type 'OracleInternal.Common.ConfigBaseClass' niet laden vanuit de assembly

  3. De prestaties zijn niet verbeterd, zelfs niet als de work_mem-grootte is vergroot

  4. Hoe schakel ik MSDTC in op SQL Server?