sql-server - nodejs mysql批量插入到临时表

标签 sql-server node.js node-mssql

我正在使用 mssql 通过 node.js 连接到 sql server 2012。我在 docs 中发现了批量插入选项

我想将数据插入到临时表中,文档说我可以做到。这是我正在尝试的:

createConnection(config.dbConfig);
    var table = new sql.Table('#atable');
    table.create = true;
    table.columns.add('a', sql.Int, { nullable: false});
    table.rows.add(1);
    table.rows.add(2);
    table.rows.add(3);
    var request = new sql.Request();
    request.bulk(table, function(err, rowCount){
       if(err){
           console.log('bulk insert error');
           console.log(err);
       } 
        var taco = new sql.Request();
        taco.query('select * from #atable', function(err, recordset){
           if(err){
               console.log('taco error:' + err);
           } 
           console.log('taco recordset:');
           console.log(recordset);
        });
    });

我得到这个输出:

taco error:RequestError: Invalid object name '#atable'.

如果我删除哈希,那么它会在服务器上创建一个真实的表。我找不到任何实际使用临时表的示例。我想知道如何做到这一点。如果没有,那么我将不得不采取另一种方法

最佳答案

我切换到常规sql语句来创建临时表,然后尝试查询它。我意识到 new sql.Request 是我的大部分问题。临时表在另一个连接/请求/线程上不存在。

这就是我的解决方案:

var table = new sql.Table('#atable');
    table.create = true;
    table.columns.add('a', sql.Int, { nullable: false});
    table.rows.add(1);
    table.rows.add(2);
    table.rows.add(3);
    var request = new sql.Request();
    request.bulk(table, function(err, rowCount){
       if(err){
           console.log('bulk insert error');
           console.log(err);
           return;
       } 

        request.query('select * from #atable', function(err, recordset){
       if(err){
           console.log('taco error:' + err);
           return;
       } 
       console.log('taco recordset:');
       console.log(recordset);
    });
    });

这是一个微妙的变化。在 request.bulk 调用中,我使用相同的请求对象(巧妙地命名为 request)来查询表。我没有创建新的连接对象,因此我没有意识到我正在使用表不存在的连接。

关于sql-server - nodejs mysql批量插入到临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29653793/

相关文章:

mysql - connectionLimit 在 node mysql 中如何工作?

sql-server - node-mssql 如何处理连接池?

sql-server - 使用 Node mssql在mssql表中批量插入数据

mysql - MSSQL 与 MYSQL 的数据库安全问题

sql - 使用排列表来填补空白

node.js - npm install -g Cordova 。这么多错误。请帮助

android - 无法在 npm 命令行中使用箭头键

SQL Server - 查看事务日志文件 (ldf) 中的特定日志条目

sql - 如何编辑具有重复键的行

sql-server - Node js msssql连接错误