Mongodb와 SQL Server 간의 통합 작업을 위해 MongoDb에서 SQL Server 데이터베이스로 레지스터를 업데이트하고 예약 된 프로세스로 mssql
패키지를 사용하여이를 수행합니다.노드 mssql : SQL 삽입 후 ID 반환
새 레지스터를 삽입 할 때마다 새 행 ID를 다시 검색해야합니다. 서브 레 그에 대한 다른 삽입을 수행해야하기 때문입니다.
다음과 같이 쿼리 결과에서 일부 정보가 검색 될 것으로 예상됩니다. 쿼리는 실제로 행을 삽입하지만, result
는 undefined
로 반환됩니다
var sql = require('mssql');
var connectionConfig = 'xxxxxxxxxxxx';
var insertionQuery = 'xxxxxxxxxxxx';
sql.connect(connectionConfig).then(pool => {
pool
.request()
.query(insertionQuery);
}).then(result => {
//I expect 'result' to have information of the inserted row, but it comes undefined instead
cosole.log(result);
}).catch(err => {
console.err(err);
});
내가 저장 프로 시저를 사용하여이 문제를 해결 할 수 있다고 생각하지만, 난 그냥 간단하게 삽입을위한 저장 프로 시저를 사용하지 않도록합니다.
누구든지 삽입 후 새 행 ID를 다시 가져 오는 방법을 알고 있습니까?
편집
내 SQL 문에 OUTPUT SCOPE_IDENTITY()
을 포함 않았다 -처럼 내 쿼리가 지금 보이는 : 내 SQL Server 관리 Studio에서 쿼리를 실행하면
INSERT INTO TABLE (columns...)
OUTPUT SCOPE_IDENTITY()
VALUES (values...)
, 그것은 잘 작동하고 새 행 ID가 반환되었지만 mssql
패키지의 query
메서드를 통해 쿼리를 실행할 때
감사합니다. Francisco 님, 지금 내가하고있는 일은 'INSERT INTO TABLE (columns ...) OUTPUT SCOPE_IDENTITY() VALUES (values ...)',하지만 지금은'{{ '': null}]'을''결과''로 사용하고 있습니다. (게시판 참조) –
당신이 말했듯이, 정확한 querry는'result {'{ ''id ':를 가지는} {VALUE} (values ...) SELECT로 SCOPE_IDENTITY 12345}]'다시 한번 감사드립니다! –