Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wygenerować nazwę tabeli według daty i godziny?

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;

Teraz możesz również dodać trochę logiki, aby skrypt był odporny na błędy, jeśli jest uruchamiany więcej niż raz dziennie, np.

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

Kiedy jesteś zadowolony z logiki i chcesz wykonać polecenie, po prostu zamień komentarze między PRINT i EXEC .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sortuj według daty w SQL

  2. Najszybszy sposób na aktualizację 120 milionów rekordów

  3. Jak oddzielić datę od napisu?

  4. SQL Server:Jak pobrać dane z dynamicznych wielu tabel?

  5. Zwróć nazwę lokalnego serwera w SQL Server z @@NAZWASERWERA