关于SQLserver 存储过程中 新增记录后 如何得到此条记录的Id

如题, 主键为自增型, 我想在记录新增后,得到记录生成的主键

[quote]楼上的不适合存储过程来搞定这个问题。
[/quote]

首先,你使用存储过程,procdure是可以获取添加的那个id的。类似于这么写:
[code="java"]

....

insert into TableM(...) values(...)

IF @@ERROR != 0
BEGIN
return @@IDENTITY //这个就是添加后的id自动增长的值,sql会自动记录的。
END

....
[/code]

从上面存储过程会得到这个id值,然后需要在程序里面获取

[code="java"]

CallableStatement call= conn.prepareCall("?={call procName(?,?<?,?)}");

try{
call.registerOutParam(1,"count");
...
call.execute();

...
int id = call.getObject(1);
}catch(Exception e){

}
[/code]
形式就是这样,具体的正确的得详细来说。你可以根据我写的形式来搜搜,或者可以联系我。

[code="java"] String sql = "...";
long returnValue; Connection conn = ConnectionHelp.getConnection();
PreparedStatement msst = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
msst.executeUpdate();
ResultSet result = msst.getGeneratedKeys();
result.next();
returnValue = result.getLong(1);[/code]

你可以参考一下