後,我的工作的MongoDB和SQL Server之間的整合,將與計劃的過程中,從MongoDB的更新寄存器到SQL Server數據庫,使用mssql
包來實現這一目標。節點MSSQL:返回ID SQL插入
每一個新的寄存器被插入的時候,我希望新的行ID被檢索回來,因爲我需要它來執行subregisters的另一個插入。
我嘗試了以下操作,期望在查詢結果中檢索到一些信息。查詢實際插入的行,但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?
編輯
我沒有包括OUTPUT SCOPE_IDENTITY()
在我的SQL語句 - 我的查詢現在看起來像:
INSERT INTO TABLE (columns...)
OUTPUT SCOPE_IDENTITY()
VALUES (values...)
如果我跑在我的SQL Server Management Studio中的查詢,它工作得很好,我得到我的新行ID返回,但通過mssql
程序包的query
方法運行查詢時,result
這樣返回:
[ { '': null } ]
感謝弗朗西斯科,這就是我現在正在做的,我查詢INSERT INTO TABLE(列...)OUTPUT SCOPE_IDENTITY()VALUES(值...)',但現在我得到'[{'':null}]'作爲我操作的結果。 (見後期版) –
正如你所說,正確的querry是'INSERT INTO TABLE(columns ...)VALUES(values ...)SELECT SCOPE_IDENTITY()作爲id',具有'result''[{'id': 12345}]'再次感謝! –