问题描述
我有一个存储过程,该过程返回两个表数据。当我从服务器端脚本执行存储过程时,我将表数据拖在一起作为单独的行。
但是在响应时,我无法弄清楚哪行属于哪个表。 谁能帮我解决这个问题
这是我的代码
server.js
var pool = new ConnectionPool(poolConfig,config);
var sqlGet = "exec dbo.getTableData";
var data = [];
pool.acquire(function (err,tconnection) {
if (err) {
console.error(err);
return;
}
var request = new Request(sqlGet,function(err,result){
tconnection.release();
if(err)
console.log(err);
res.send(data);
});
request.on('row',function(columns) {
var row = {};
columns.forEach(function(column) {
row[column.metadata.colName] = column.value;
});
data.push(row);
});
tconnection.execSql(request);
});
我的存储过程代码:
CREATE PROCEDURE [dbo].[getTableData]
AS
SELECT * FROM table1;
SELECT * FROM table2;
RETURN
在下面的代码中,我在column
I got this response上获得了从存储过程返回的列的列表
request.on('row',function(columns) {
var row = {};
columns.forEach(function(column) {
row[column.metadata.colName] = column.value;
});
data.push(row);
});
解决方法
感谢@PrashanthReddyBalemula,根据他的评论,我通过从存储过程中返回表名解决了我的问题
Feedbacks
这样,我可以从字段CREATE PROCEDURE [dbo].[getTableData]
AS
SELECT *,'MyTable1' as TableName FROM table1;
SELECT *,'MyTable2' as TableName FROM table2;
RETURN
中获取表的名称