如何使用 ODBC 在 SQL Server 2000 中获取最后插入的 id?
Posted
技术标签:
【中文标题】如何使用 ODBC 在 SQL Server 2000 中获取最后插入的 id?【英文标题】:How to get last inserted id in SQL Server 2000 using ODBC? 【发布时间】:2015-03-07 20:10:21 【问题描述】:我正在使用此代码将新记录插入数据库:
function newProtocol($date, $type, $text, $who, $reff)
$sql = "INSERT INTO c_rozhovor (ref_kunde, protokol_typ, besuch_protokol, datum_vzniku, kto_vytvoril) VALUES ('"
.msescape($reff)."','"
.msescape($type)."','"
.msescape($text)."','"
.msescape($date)."','"
.msescape($who)."')";
$connection = odbc_connect(constant('DATABASE_NAME'),'','');
if (!connection) return false;
$query = odbc_exec($connection, $sql);
if (!query) return false;
return "New protocol was successfuly saved!";
我想以某种方式返回 最后插入的 id 而不是 New protocol was successfully saved!
字符串。 mysql 中的 LAST_INSERT_ID()
之类的东西。有没有办法在 SQL Server 2000 中实现这一点?
【问题讨论】:
【参考方案1】:您可以尝试对您的代码进行以下修改吗:
function newProtocol($date, $type, $text, $who, $reff)
$sql = "INSERT INTO c_rozhovor (ref_kunde, protokol_typ, besuch_protokol, datum_vzniku, kto_vytvoril) VALUES ('"
.msescape($reff)."','"
.msescape($type)."','"
.msescape($text)."','"
.msescape($date)."','"
.msescape($who)."') SELECT SCOPE_IDENTITY()";
$connection = odbc_connect(constant('DATABASE_NAME'),'','');
if (!connection) return false;
$query = odbc_exec($connection, $sql);
if (!query) return false;
return $query;
【讨论】:
谢谢。这将返回错误“未定义函数 IDENT_CURENT...” 是的,您可以对其进行查询并捕获返回值。查看编辑后的答案。 同上:未定义函数Ident_current().." 你能试试编辑后的答案,告诉我你的输出是什么。以上是关于如何使用 ODBC 在 SQL Server 2000 中获取最后插入的 id?的主要内容,如果未能解决你的问题,请参考以下文章
使用 ODBC 连接时如何在 MS Access 或 SQL Server 中使用日期数据类型
ODBC 查询在 MS Access 中有效,但在 SQL Server 中超时