获取插入项的ID

Nem*_*jaT 4 c# sql sql-server

所以我有一个查询:

cmd.CommandText = @"INSERT INTO [dbo].[bill](bruto, waiterid, reversalid, number, ddate, tableid, total, printed, posplace, guestid, numberofguests, closedtime, methodofpaymentid, realdate) " +
                    "VALUES (@bruto, @waiterid, 0, 0, @ddate, 1, @total, 'True', 0, 0, 0, @closedtime, @methodofpaymentid, @realtime) " +
                    "SELECT id";
//+ lines of cmd.Parameter.AddWithValue(...,...);
Run Code Online (Sandbox Code Playgroud)

但是一旦我尝试执行查询:

int newId = Convert.ToInt64(cmd.ExecuteScalar());
Run Code Online (Sandbox Code Playgroud)

我得到的id没有被识别(即使它确实存在).

如果我尝试更改SELECT[dbo].[bill].id,我会收到错误

无法绑定多部分标识符"dbo.bill.id".

我也尝试过它SELECT MAX(id)(因为这是最接近标量的东西),但是又一次,我得到了不明的错误.

谢谢阅读.

Rah*_*thi 7

你可以使用

SELECT SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)

在插入查询之后,它将为您提供最后一个插入行的标识.有关SCOPE_IDENTITY()的详细信息,请查看MSDN .

返回插入同一范围内的标识列的最后一个标识值.