在SQL Server 2008中获取最后插入的ID

4

我想要获取特定表的最后插入 id,有谁能告诉我如何获取? 在 mysql 中我们有 mysql_insert_id()。在 sql server 2008 中是否有类似的函数?

2个回答

6

类似这样的工作非常顺利进行

$sql = "insert into tables(field) values (value);SELECT SCOPE_IDENTITY()";
$db = getConnection();
$results = mssql_fetch_assoc(mssql_query($sql));
$lastid=$results['computed'];

4
我制作了这个函数,以方便操作:)......如果您有多个数据库资源,请将其传递到mssql_query请求中。这将检索在该资源连接上生成的最新唯一ID。
mssql_query("insert into data(name) values('bob')");
$id = getLastId();

function getLastId() {
    $result = mssql_fetch_assoc(mssql_query("select @@IDENTITY as id"));
    return $result['id'];
}

你可能也想要了解一下 SCOPE_IDENTITY,因为 @@IDENTITY 和 SCOPE_IDENTITY 的工作方式略有不同。 - Lucas
在您的解决方案中,我需要运行一个额外的查询。我们不能在系统中不运行额外的查询吗? - Rukmi Patel
不,这只是在插入时发生,所以不会有问题。而且由于它使用相同的数据库链接,实际上并不会有任何区别。你可以编写一个存储过程来返回你想要的任何内容,但如果不需要,这种方法更简单。 - duante

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接