2012-09-06 49 views
0

我有這樣的查詢:查詢 - 獲取最後插入的行ID

$sql = " 
INSERT INTO table 
(a, b, c) 
VALUES 
(1, 2, 3)"; 

$result_set = sqlsrv_query($conn, $sql); 

我現在該如何迴應的最後插入的行ID?

謝謝你們..

+0

可能重複[檢索插入記錄的ID:Php&MS SQL SERVER](http://stackoverflow.com/questions/6850375/retrieve-th e-id-of-an-inserted-record-php-ms-sql-server) –

回答

2

如果你插入到一個SQLServer,就像在你的問題的標籤說。

SCOPE_IDENTITY()給你最後一個插入的ID。

$sql = "INSERT INTO table 
     (a, b, c) 
     VALUES 
     (1, 2, 3) 

     SELECT SCOPE_IDENTITY() as newId "; 
+0

我認爲SCOPE_IDENTITY()會工作,如果他在表中有IDENTITY列的話 –

+0

是的,我也這麼認爲。插入語句看起來像是一個標識列。 – dknaack

0
$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