0
SET @COLUMNNAMES_HIST= ( SELECT STRING_AGG( COLUMN_NAME, ' ,') COLUMN_NAMES FROM INFORMATION_SCHEMA.COLUMNS WHERE UPPER(TABLE_SCHEMA) = '@SCHEMANAME' AND UPPER(TABLE_NAME) = '@TABLE_HIST';                

SET @MERGESQL = 'MERGE ' +  @TABLE_HIST + ' USING #FINAL_TEMP_CPY SRC
ON (TGT.@PRIMARYKEY = SRC.@PRIMARYKEY AND TGT.UPDATE_TIMESTAMP = SRC.UPDATE_TIMESTAMP)
WHEN NOT MATCHED BY TARGET
            THEN INSERT
            (
                @COLUMNNAMES_HIST -- Column list
            ) 
        
            (
                SELECT *, GETTIMESTAMP(),  GETTIMESTAMP() FROM FINAL_TEMP_CPY;
            )'

最初に TABLE_HIST からすべての列を変数にフェッチし、それを INSERT ステートメントで使用しています。それでいいですか?そして、値では、ソーステーブルからすべての値をフェッチし、TABLE_HIST の他の 2 つの列のタイムスタンプを同時に取得しています。これはうまくいくと思いますか?

4

0 に答える 0