我对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 => {
})
})
})
请告诉我该怎么做。
答案 0 :(得分:1)
尝试这种语法
insert into [Table_A] ([data])
output inserted.id, inserted.data into [Table_B]