我有這樣的查詢:查詢 - 獲取最後插入的行ID
$sql = "
INSERT INTO table
(a, b, c)
VALUES
(1, 2, 3)";
$result_set = sqlsrv_query($conn, $sql);
我現在該如何迴應的最後插入的行ID?
謝謝你們..
我有這樣的查詢:查詢 - 獲取最後插入的行ID
$sql = "
INSERT INTO table
(a, b, c)
VALUES
(1, 2, 3)";
$result_set = sqlsrv_query($conn, $sql);
我現在該如何迴應的最後插入的行ID?
謝謝你們..
如果你插入到一個SQLServer,就像在你的問題的標籤說。
SCOPE_IDENTITY()
給你最後一個插入的ID。
$sql = "INSERT INTO table
(a, b, c)
VALUES
(1, 2, 3)
SELECT SCOPE_IDENTITY() as newId ";
我認爲SCOPE_IDENTITY()會工作,如果他在表中有IDENTITY列的話 –
是的,我也這麼認爲。插入語句看起來像是一個標識列。 – dknaack
$dbres = sqlsrv_query('SELECT LAST_INSERT_ID()');
$dbrow = sqlsrv_fetch_array($dbres);
$lastInsertId = $dbrow[0];
你可以做這樣,但也許可能會出現另一個插入你得到你插入ID和食堂的一切行動之前,所以最好這樣說:
INSERT into table(a, b, c) OUTPUT Inserted.a, Inserted.b, Inserted.c VALUES (1, 2, 3)
或這樣:
INSERT into table(a, b, c) VALUES (1, 2, 3) SELECT SCOPE_IDENTITY() as lastId
可能重複[檢索插入記錄的ID:Php&MS SQL SERVER](http://stackoverflow.com/questions/6850375/retrieve-th e-id-of-an-inserted-record-php-ms-sql-server) –