sql >> データベース >  >> RDS >> Sqlserver

日時でテーブル名を生成するにはどうすればよいですか?

    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;
    

    ここで、特定の日に複数回実行された場合にスクリプトがエラーの影響を受けないようにするロジックを追加することもできます。例:

    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
    

    ロジックに満足してコマンドを実行したい場合は、PRINT間でコメントを交換するだけです。 およびEXEC



    1. cx_oracleを使用してMERGEから影響を受ける行の数を返します

    2. PHPMySQL-プリペアドステートメントにデフォルト値を挿入する方法

    3. PostgreSQLクエリで変数を宣言する方法

    4. Laravelを使用して外部キーですべてのレコードを取得する方法