我正在尝试将表格从一个表格复制到另一个表格。所以我想要传输大数据,因为它想要将该数据的内容复制到另一个表中。它更像是一个直接的副本。我可能会稍微按下数据,然后将其复制到新表中。我遇到的问题是行事件一直在触发,我无法控制它。我尝试使用异步并等待我希望停止但我似乎没有工作的地方。我无法控制事件是否发生。这就是我到目前为止所拥有的。所以基本上我想在MSSQL中模拟一个游标。我不想下载所有数据,然后对其进行操作。
我没有显示下面数据的按摩,因为我只想查看是否可以将数据从一个表复制到另一个表。
var fs = require('fs');
var sql = require('mssql');
var sql2 = require('mssql');
var Request = require('tedious').Request;
var TYPES = require('tedious').TYPES;
var SqlString = require('sqlstring');
const config = {
user: 'xxxx',
password: 'xxx',
server: 'xxxx\\',
port: 'xxxx',
database: 'xxxx',
options: {
instanceName: 'sql2014'
}
};
function insertRecord(pool, record){
return new Promise(function(resolve, reject){
const request = pool.request();
request.input('invoice_id', sql.Int, record.invoice_id);
request.query('INSERT INTO _invoice_temp(invoice_id) VALUES(@invoice_id)', (err, result) => {
if(err){
reject(err);
}
resolve(1);
});
});
}
async function main() {
try
{
let pool = (await sql.connect(config));
const request = pool.request();
request.stream = true;
request.query('select * from invoice');
var data = await request.on('row', row => {
return new Promise(function(resolve, reject){
resolve(row);
});
});
await insertRecord(pool, data);
}
catch(err){
console.log(err);
}
};
main();
答案 0 :(得分:0)
如果您想将表从同一个数据库复制到另一个表,那么您应该只在db级别下完成它。从数据库获取数据不是一个好方法,然后通过Node.js等一些服务器端技术处理并将其插入到该数据库中。因此,您可以使用原始SQL查询来完成工作。
将所有列从一个表复制到另一个表:
INSERT INTO table2
SELECT * FROM table1
WHERE condition;
仅将一个表中的某些列复制到另一个表中:
INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;
您可以在以下链接中详细了解它: https://www.w3schools.com/sql/sql_insert_into_select.asp