在Sql中插入并选择最后一个值

时间:2018-08-10 06:48:31

标签: c# sql

我想在子表中插入最后一个客户ID,但是下面的代码插入所有数据

public void insertCustomer(int eqpId)
    {
        con = new Connection2DB();
        con.sqlquery("insert into Customer_Equipment(Cst_ID,EquipId) values ((Select Max(Cst_ID) from Customer),'"+eqpId+"')");

        con.NonQueryEx();
    }

3 个答案:

答案 0 :(得分:0)

使用

SELECT IDENT_CURRENT(‘tablename’)

这是您修改后的查询。

con.sqlquery("insert into Customer_Equipment(Cst_ID,EquipId) values ((SELECT IDENT_CURRENT(‘Customer’)),'"+eqpId+"')");

答案 1 :(得分:0)

INSERT INTO dbo.YourTable(columns....)
VALUES(..........)

SELECT SCOPE_IDENTITY() -- this is it

所以您可以以某种方式使用它

public void insertCustomer(int eqpId)
{
    con = new Connection2DB();
    con.sqlquery("insert into Customer_Equipment(Cst_ID,EquipId) values (SCOPE_IDENTITY(),'"+eqpId+"')");

    con.NonQueryEx();
}

还有另外两种可能性,例如@@IDENTITYIDENT_CURRENT。每个人的行为都差不多。

答案 2 :(得分:-1)

您应该使用UPDATE statement

尝试这样的事情:

`    
"UPDATE Customer_Equipment
SET EquipId = " + eqpId + "
WHERE Cst_ID = (Select Max(Cst_ID) from Customer)
`

不确定这是否100%准确,但希望您能理解。

此外,为了改善代码风格,建议您查看string interpolation in C#