我想在子表中插入最后一个客户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();
}
答案 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();
}
还有另外两种可能性,例如@@IDENTITY
和IDENT_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#