Sam*_*ami 1 sql-server multiple-insert sqltransaction
为简单起见假设我有两张桌子
user table (id, email)
user log table (id, date)
无论在用户表中插入什么id,都应该在user_log表中插入相同的id,否则事务应该失败.
我怎样才能做到这一点
BEGIN TRANSACTION
INSERT into user(id, email) OUTPUT Inserted.id (1, 'a@x.com', 'x'), (2, 'b@x.com', 'y')
// I also want to be able to do
INSERT into user_log(id, date) values(1, date), (2, date)
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)
您可以将输出直接插入user_log表:
BEGIN TRANSACTION
INSERT INTO [User] (ID, Email)
OUTPUT inserted.id, CURRENT_TIMESTAMP INTO user_log(id, date)
VALUES (1, 'a@x.com'), (2, 'b@x.com');
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)
如果你需要返回id,你可以添加第二个OUTPUT子句:
BEGIN TRANSACTION
INSERT INTO [User] (ID, Email)
OUTPUT inserted.id, CURRENT_TIMESTAMP INTO user_log(id, date)
OUTPUT inserted.id
VALUES (1, 'a@x.com'), (2, 'b@x.com');
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2276 次 |
| 最近记录: |