Tiêu đề câu hỏi nói gì. Với truy vấn như SELECT @@IDENTITY AS ins_id
, tôi có cần cung cấp tên bảng hoặc bất kỳ thông tin nào khác để chỉ định bảng/cơ sở dữ liệu nào tôi đang nói đến không?Làm thế nào để có được Chèn id trong MSSQL trong PHP?
Trả lời
@@IDENTITY
trả về danh tính mới nhất được tạo trong phiên hiện tại. Trong hầu hết các trường hợp, bạn có thể muốn sử dụng SCOPE_IDENTITY
để trả về danh tính mới nhất được tạo trong phạm vi hiện tại.
Ví dụ, nếu bạn chèn một hàng vào table1, nhưng chèn mà bắn một kích hoạt mà chèn một hàng vào table2, sau đó @@IDENTITY
sẽ trở lại bản sắc từ table2 trong khi SCOPE_IDENTITY
sẽ trở lại bản sắc từ table1.
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
Không; nó hoạt động giống như SELECT LAST_INSERT_ID() trong mysql, lấy giá trị nhận dạng cuối cùng được chèn vào. Bạn có thể muốn xem this in-depth examination để biết thêm thông tin về những gì bạn có thể muốn quan tâm.
Đây là đoạn mã dựa trên mã Joomla. $ dbh là kết nối cơ sở dữ liệu (kết quả của mssql_connect()). Tên khóa (ID) được cập nhật nếu bạn chuyển đối số $ keyName.
Mã này đang sử dụng từ khóa MSSQL "OUTPUT" để nhận ID (hoặc bất kỳ giá trị bắt buộc nào) của giá trị được chèn.
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;
}
Tôi thích giải pháp này vì tôi tin rằng nó bao gồm tất cả các căn cứ của bạn vì bạn không thể có được GUID (pk) với SCOPE_IDENTITY .. nhưng sử dụng mssql_result kết hợp với OUTPUT INSERTED trong câu lệnh sql của bạn làm việc với pk's là số nguyên tăng dần tự động hoặc duy nhất stings như GUIDs. – greaterKing
- 1. Làm thế nào để có được chèn hoặc chọn id hàng trong postgres sử dụng python
- 2. Làm cách nào để chèn 100000 hàng vào MSSQL?
- 3. Làm thế nào để có được Id phiên Trong C#
- 4. Làm thế nào để có được Id thread trong C#
- 5. Chèn ngày giờ trong MSSQL từ Coldfusion
- 6. Làm thế nào để có được id của hàng chèn từ PG :: Kết quả
- 7. làm thế nào để có được id để hộp thoại
- 8. Làm cách nào để nhận ID của nhiều hàng được chèn vào trong MySQL?
- 9. Làm thế nào để có được id ứng dụng Android?
- 10. làm cách nào tôi có thể nhận id cuối cùng được chèn vào trong formview
- 11. PHP/MySQL chèn hàng rồi nhận 'id'
- 12. MSSQL: Chỉ mục cuối cùng trong GROUP BY (với id)
- 13. PHP Postgres: Nhận ID chèn cuối cùng
- 14. Làm thế nào để chèn văn bản trong một td với id, sử dụng JavaScript
- 15. Lấy id của thực thể được chèn vào trong datomic?
- 16. Làm thế nào để nối một chuỗi và GETDATE() trong MSSQL
- 17. Làm thế nào để chèn một cặp giá trị khóa mới trong mảng trong php?
- 18. Lấy ID được chèn từ saveAll() trong CakePHP
- 19. lĩnh vực Làm thế nào để có được lựa chọn từ các truy vấn sp_spaceused trong MSSQL
- 20. Làm thế nào để chèn loại đối tượng trong ListView?
- 21. Làm thế nào để đếm số hàng với dữ liệu cụ thể trong MSSQL
- 22. Lấy id được chèn mới nhất trong trình kích hoạt?
- 23. làm thế nào để có được ngày tạo từ id đối tượng trong mongoose?
- 24. Làm thế nào để có được Job theo id trong RQ python?
- 25. Trong Drupal làm thế nào để có được tnid hoặc id nút của nút dịch?
- 26. Làm thế nào để có được thời gian chèn đáng tin cậy trong Cassandra?
- 27. Làm thế nào để có được phiên bản PHP?
- 28. làm thế nào để có được id dự án google và id ứng dụng pushwoosh?
- 29. Làm thế nào để chèn/tạo các thủ tục lưu sẵn trong mySQL từ PHP?
- 30. Làm thế nào để có được yếu tố trong tương tự angularjs nhận được bởi id trong javascript?
Tôi cũng thấy: CHỌN CAST (COALESCE (SCOPE_IDENTITY(), @@ IDENTITY) AS int) – jjwdesign
Đã bỏ phiếu. Tôi không thấy bất kỳ php, câu hỏi là "Làm thế nào để có được Chèn id trong MSSQL trong PHP". –