我有如下查询,
Select max(Mkey) from p_leave_allocation
它为max(Mkey)
提供了1643
。
现在我想插入另一个表格p_leave_allocation_11122015
,mkey
应该从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
答案 0 :(得分:1)
除了向您的表添加IDENTITIY的建议外,您可以尝试这样:
ROW_NUMBER()将显示一个以1开头的行计数器。如果添加最大值,则"创建"正在运行的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)
语句(括号内)......