插入选择更改表,其中包含其他表的最大ID和事务

时间:2017-04-20 14:11:10

标签: sql-server tsql

我有一个更改表,我需要为事务表中的id分配下一个可用的id。批处理完成后,它将被发布到事务表中。如何在select insert语句中获取另一个表的max + 1?我必须将它连接到同一查询中的code_id。

INSERT INTO CHANGES 
(P.CODE, P.ID, P.CODE_ID, P.FIRST_NAME, P.MIDDLE_NAME, P.LAST_NAME) 
SELECT 'P', MAX(transactionstable.ID) +1, 
'P0000' + MAX(transactionstable.ID) +1, 'first','middle','last';

1 个答案:

答案 0 :(得分:0)

    INSERT INTO CHANGES (
                         P.CODE, 
                         P.ID, 
                         P.CODE_ID,
                         P.FIRST_NAME,
                         P.MIDDLE_NAME, 
                         P.LAST_NAME
                         ) 
    SELECT  P,      --remove single quote, otherwise it is static value
            MAX(transactionstable.ID) +1, 
           'P0000' + CAST((MAX(transactionstable.ID) +1) as VARCHAR(50)), --Conversion here for string concatenation 
            first,  --remove single quote, otherwise it is static value
            middle, --remove single quote, otherwise it is static value
            last    --remove single quote, otherwise it is static value

/*********************
    missing here
**********************/    
    FROM transactions