题目说的是什么。使用诸如SELECT @@IDENTITY AS ins_id
之类的查询,我是否需要提供表名或任何其他信息来指定我正在讨论的表/数据库?如何在PHP中使用MSSQL插入id?
7
A
回答
14
@@IDENTITY
返回当前会话中生成的最新身份。在大多数情况下,您可能会想要使用SCOPE_IDENTITY
,它将返回当前作用域中生成的最新标识。
例如,如果您插入一行到表1,但插入触发其插入行表2触发,然后@@IDENTITY
将从表2返回身份而SCOPE_IDENTITY
将从返回身份表1。
INSERT INTO my_table (my_column) VALUES ('test')
-- return the identity of the row you just inserted into my_table
-- regardless of any other inserts made by triggers etc
SELECT SCOPE_IDENTITY() AS ins_id
1
否;它的工作原理与MySQL中的SELECT LAST_INSERT_ID()非常相似,它检索插入的最后一个标识值。您可能需要查看this in-depth examination以了解更多关于您可能想要关注的内容。
1
这是一些基于Joomla代码的代码片段。 $ dbh是数据库连接(mssql_connect()的结果)。如果您传递$ keyName参数,则键名(ID)会更新。
此代码使用MSSQL关键字“OUTPUT”获取插入值的ID(或任何所需值)。
function mssql_insertObject($table, &$object, $keyName = NULL)
{
global $dbh;
if($keyName) {
$fmtsql = 'INSERT INTO '. $table .' (%s) OUTPUT INSERTED.' . $keyName . ' VALUES (%s) ';
}
else {
$fmtsql = 'INSERT INTO '. $table .' (%s) VALUES (%s) ';
}
$fields = array();
foreach (get_object_vars($object) as $k => $v) {
if (is_array($v) or is_object($v) or $v === NULL) {
continue;
}
if ($k[0] == '_') { // internal field
continue;
}
$fields[] = $k;
$values[] = "'" . str_replace("'", "''", $v) . "'";
}
$sql = sprintf($fmtsql, implode(",", $fields) , implode(",", $values));
$query = mssql_query($sql, $dbh);
if($query === false) {
return false;
}
if(is_resource($query))
{
if($keyName) {
$id = mssql_result($query, 0, 0);
if($id) {
$object->$keyName = $id;
}
}
mssql_free_result($query);
}
return true;
}
相关问题
- 1. 最后在MSSQL中插入的ID PHP
- 2. PHP插入MSSQL使用ODBC
- 3. PHP/MSSQL ..根据用户名选择ID,根据ID插入表?
- 4. 如何使用查找表向PHP插入MSSQL中的行?
- 5. 有没有办法在PHP中使用MSSQL插入数据?
- 6. 如何在PHP中使用odbc连接将数据插入MSSQL服务器
- 7. Propel/mssql:最后一个插入ID
- 8. 插入mssql后自动增加id
- 9. 节点MSSQL:返回ID SQL插入
- 10. 插入到mssql中
- 11. 如何使用PHP在MySQL表中插入订单ID列和ID列?
- 12. 使用sqlsrv无法插入到表中的PHP + MSSQL数据
- 13. 如何在MSSQL上使用PHP(PEAR MDB2?)
- 14. 如何在PHP中插入
- 15. 如何在使用Python在SQLite中插入行之后检索插入的id?
- 16. 带MSSQL的PHP插入NULL错误
- 17. 通过PHP插入Unicode到MSSQL
- 18. 我如何使用PHP-jQuery和MSSQL Server插入多个复选框?
- 19. 在查询中使用插入ID?
- 20. 在使用javascript的ID中插入td
- 21. 使用PHP插入到多个表:PDO MSSQL
- 22. 使用PYODBC在MSSQL中将BitTorrent位域插入到VarBinary(MAX)中
- 23. 记录MSSQL插入
- 24. 如何插入100000行到MSSQL?
- 25. 如何强制重复键插入mssql
- 26. 如何检索在PHP中使用PDO时最后插入的行的ID?
- 27. 在ODBC中插入阿拉伯语文本使用MSSQL的PHP驱动程序
- 28. PHP MySQL的MSSQL如何插入或更新[ ']或[“]或[`]字符?
- 29. 如何使用PDO将二进制数据插入MSSQL
- 30. PHP插入表数据代码不插入数据到MSSQL表
我也看到:SELECT CAST(COALESCE(SCOPE_IDENTITY(),@@ IDENTITY)为INT) – jjwdesign 2014-05-14 19:37:47
下投票。我没有看到任何PHP,问题是“如何在MSSQL中获取插入ID在PHP中”。 – 2015-06-27 02:40:49