Ali*_*sam 8 c# asp.net sql-server-2008
我正在使用SQL Server 2008开发一个ASP.NET项目(C#).
当我在数据库中的表中插入一行时,我想获取最后插入的ID,即表的IDENTITY(自动增量).
我不想使用其他查询,并执行类似...
SELECT MAX(ID) FROM USERS;
Run Code Online (Sandbox Code Playgroud)
因为 - 即使它只是一个查询 - 感觉很蹩脚......
当我插入一些东西时,我通常使用ExecuteNonQuery(),它返回受影响的行数.
int y = Command.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
是否有办法在不使用其他查询的情况下返回最后插入的ID?
Aar*_*and 18
大多数人通过以下方式执行此操作:
INSERT dbo.Users(Username)
VALUES('my new name');
SELECT NewID = SCOPE_IDENTITY();
Run Code Online (Sandbox Code Playgroud)
(或者代替查询,将其分配给变量.)
所以这并不是对桌子的两个查询......
但是也有以下方式:
INSERT dbo.Users(Username)
OUTPUT inserted.ID
VALUES('my new name');
Run Code Online (Sandbox Code Playgroud)
但是,你无法真正找到它ExecuteNonQuery
.
您可以将id作为输出参数从存储过程返回,例如 @userId int output
然后,插入后, SET @userId = scope_identity()
归档时间: |
|
查看次数: |
23060 次 |
最近记录: |