제목에 나오는 질문에 무엇이 있습니까? SELECT @@IDENTITY AS ins_id
과 같은 쿼리를 사용하면 내가 말하는 테이블/데이터베이스를 지정하기 위해 테이블 이름이나 다른 정보를 제공해야합니까?PHP에서 MSSQL의 삽입 ID를 얻는 방법은 무엇입니까?
답변
@@IDENTITY
은 현재 세션에서 생성 된 최신 ID를 반환합니다. 대부분의 경우 SCOPE_IDENTITY
을 대신 사용하여 현재 범위에서 생성 된 최신 ID를 반환하는 것이 좋습니다. 당신이 표에 행을 삽입하지만 삽입 표 2에 행을 삽입하는 트리거를 발생하는 경우 SCOPE_IDENTITY
가 에서 신원을 반환하는 반면
는 예를 들어, @@IDENTITY
는 표 2에서 신원을 반환합니다 표 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
아니오; mysql의 SELECT LAST_INSERT_ID()와 매우 흡사하게 삽입 된 마지막 신원 값을 검색한다. 걱정할만한 것에 대해 더 알고 싶으시면 this in-depth examination을 참조하십시오.
다음은 다소 Joomla 코드를 기반으로 한 코드 단편입니다. $ dbh는 데이터베이스 연결입니다 (mssql_connect()의 결과). $ keyName 인수를 전달하면 키 이름 (ID)이 업데이트됩니다.
이 코드는 삽입 된 값의 ID (또는 필요한 값)를 얻기 위해 MSSQL 키워드 "OUTPUT"을 사용합니다.
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;
}
나는 당신이 SCOPE_IDENTITY와 함께 GUID (pk)를 얻을 수 없기 때문에이 솔루션을 좋아한다. 그러나 sql 문에서 OUTPUT INSERTED와 함께 mssql_result를 사용하면 pk의 자동 증가 정수 또는 고유 GUID와 같은 소리. – greaterKing
- 1. 마지막으로 삽입 한 ID를 얻는 방법은 무엇입니까?
- 2. URL에서 ID를 얻는 방법은 무엇입니까?
- 3. 이 ADODB.Recordset에서 삽입 ID를 얻는 방법?
- 4. php에서 사용자의 facebook 사용자 ID를 얻는 방법
- 5. ef4 poco, 삽입 후 ID를 얻는 방법?
- 6. Informix : 마지막으로 삽입 된 레코드의 ID를 얻는 방법
- 7. jQuery에서 앵커 태그의 ID를 얻는 방법은 무엇입니까?
- 8. 양식에서 모든 ID를 얻는 방법은 무엇입니까?
- 9. C2DM 서버에서 등록 ID를 얻는 방법은 무엇입니까?
- 10. Spring에서 bean의 id를 얻는 방법은 무엇입니까?
- 11. Linq를 사용하여 데이터베이스에서 ID를 얻는 방법은 무엇입니까?
- 12. Facebook 사용자 ID를 얻는 방법은 무엇입니까?
- 13. C#에서 발신자 ID를 얻는 방법은 무엇입니까?
- 14. Android에서 애플리케이션 ID를 얻는 방법은 무엇입니까?
- 15. 페이지가 매겨진 ID를 포함하여 jqgrid의 모든 ID를 얻는 방법은 무엇입니까?
- 16. linq에서 마지막 삽입 된 ID를 얻는 방법 EF
- 17. iframe의 ID를 얻는 방법
- 18. PHP에서 SOAP 게시물을 얻는 방법은 무엇입니까?
- 19. PHP에서 하위 파일 수를 얻는 방법은 무엇입니까?
- 20. PHP에서 사용자의 IP 주소를 얻는 방법은 무엇입니까?
- 21. PHP에서 SWF 파일 크기를 얻는 방법은 무엇입니까?
- 22. PHP에서 HashTable을 얻는 가장 좋은 방법은 무엇입니까?
- 23. PHP에서 백그라운드 프로세스의 PID를 얻는 방법은 무엇입니까?
- 24. PHP에서 문자열의 문자 수를 얻는 방법은 무엇입니까?
- 25. MSSQL의 CONTEXT_INFO에 해당하는 PostgreSQL은 무엇입니까?
- 26. MSSQL의 ID 열에서 ID를 건너 뛰는 것에 대한 질문
- 27. PHP에서 PDO를 사용할 때 마지막으로 삽입 된 행의 ID를 검색하는 방법은 무엇입니까?
- 28. 고유 한 ID를 얻는 쉬운 방법
- 29. mysql 데이터베이스의 createuserwizard에서 사용자 ID를 얻는 방법은 무엇입니까?
- 30. Sql Server에 새 행을 삽입 한 직후에 새 ID를 얻는 방법은 무엇입니까?
내가도 본 적이 : SELECT CAST (COALESCE (SCOPE_IDENTITY(), int로서 @@ IDENTITY는)) – jjwdesign
아래로 투표했다. 나는 PHP를 보지 못했다. 질문은 "PHP로 MSSQL에서 Insert id를 얻는 법"이었다. –