从最大值中给出 Id

Give Id from the maximum value

我有如下查询,

Select max(Mkey) from p_leave_allocation

这给了我 max(Mkey) 作为 1643.

现在我想插入另一个 table 说 p_leave_allocation_11122015mkey 应该从 1644

开始

那么查询是什么?

更新

我将像这样插入数据

INSERT INTO p_leave_allocation_11122015(Mkey, Entry_Sr_no, Comp_mkey,FDepartment_Id,FModule_Id,Year, Emp_mkey, Emp_card_no, U_Datetime, Delete_Flag,Month12)SELECT Mkey,Entry_Sr_no, Comp_mkey,FDepartment_Id,FModule_Id,Year,Emp_mkey,Emp_card_no,U_Datetime,Delete_Flag,Month12FROM p_leave_allocation

我正在使用sql-server-2005

除了将 IDENTITIY 添加到您的 table 的建议之外,您还可以这样尝试:

ROW_NUMBER() 将调出一个从 1 开始的行计数器。如果您添加最大值,您 "create" 运行 ID 会动态...

INSERT INTO p_leave_allocation_11122015(Mkey, Entry_Sr_no, Comp_mkey,FDepartment_Id,FModule_Id,Year, Emp_mkey, Emp_card_no, U_Datetime, Delete_Flag,Month12)
SELECT ROW_NUMBER() OVER(ORDER BY p_leave_allocation.MKey) + 1643
      ,Entry_Sr_no, Comp_mkey,FDepartment_Id,FModule_Id,Year,Emp_mkey,Emp_card_no,U_Datetime,Delete_Flag,Month12
FROM p_leave_allocation 

编辑:如果您不想写最大值,您也可以在此处放置适当的 (SELECT MAX(MKey) FROM Somewhere) 语句(在括号中)...