sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan genererer man tabelnavn efter dato og klokkeslæt?

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 vil du måske også tilføje noget logik for at gøre scriptet immunt over for fejl, hvis det køres mere end én gang på en given dag, f.eks.

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 er tilfreds med logikken og vil udføre kommandoen, skal du bare bytte kommentarerne mellem PRINT og EXEC .



  1. Postgres' CTE vs Subquery Performance forskel. Hvorfor?

  2. Hurtig nem måde at migrere SQLite3 til MySQL?

  3. Mysql - Lagret procedure OUT variabel returnerer null

  4. Fatal fejl:Kald til udefineret metode mysqli::bind_param() i