如何在Transaction上插入多条记录

时间:2017-09-08 06:10:22

标签: sql-server node.js express

我对SQL Server事务有疑问

我想将数据插入Table_A和Table_B。 Table_B有一个Table_A的键。 Table_B的记录大小(具有Table_A的键)是动态的。

[表-A]
  id:,
  标题:

[表-B]
id:,
tableA_id :,
标题:

我的代码仅适用于插入数据是静态大小的情况。 像这样

var tableBtitles = ['abc','def','ghi'] //this size is dynamic
const transaction = new sql.Transaction()
  transaction.begin(err => {

  const request = new sql.Request(transaction)
  request.query("insert into tableA (title) output Inseted.Id values('a')" , (err, result) => {
    const request = new sql.Request(transaction)
    request.input('tableA_id',mssql.NVarChar,
      result['recordset'][0]['id']);  
    request.input('title1',mssql.NVarChar,
      tableBtitles[0]); 
    request.input('title2',mssql.NVarChar,
      tableBtitles[1]); 
    request.input('title3',mssql.NVarChar,
      tableBtitles[2]); 
    request.query('insert into tableB (tableA_id,title) values(@tableA_id,@title1),(@tableA_id,@title2),(@tableA_id,@title2)), (err, result) => {
      transaction.commit(err => {

      })
  })
})

请告诉我该怎么做。

1 个答案:

答案 0 :(得分:1)

尝试这种语法

insert into [Table_A] ([data]) 
output inserted.id, inserted.data into [Table_B]

- 点击这里 https://stackoverflow.com/a/3712735/8543453