sql server同时执行2条语句怎么知道有没有完全成功

存储过程里比如我
insert tb1 select '1','2','3'
insert tb2 select '4','5','6'
这2条语句 如果我只执行一条的话我后面跟一个if(@@error<>0)来判断结果 那现在有2条的话再这样写如果出错了是不是不知道错的是哪一个了 有没有什么让他们要么同时成功 要么失败一个的话都算失败

如果有一个失败,比如id被占用,应该会出现异常,这样,2个sql是一个事务里,应该会同时成功,同时失败的。你自己试一下

 BEGIN TRANSACTION;             #启动事务
 insert tb1 select '1','2','3';
insert tb2 select '4','5','6';

COMMIT;                                 #提交事务,事务中间的要嘛同时成功,否则回滚到事务开始的状态

IF @ROWCOUNT>0
print '插入成功'
else
print '插入失败,将回滚'

if(@@error>1)

可以使用数据库事务的原子性特性,也就是i把这两条语句放在一个事务里面,这样就是妖魔都成功,要末都失败,跟你的要求一样,望采纳。
事务使用的语法https://www.cnblogs.com/kissdodog/p/3169788.html

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/try-catch-transact-sql?view=sql-server-2017

begin try
begin transaction
insert tb1 select '1','2','3'
insert tb2 select '4','5','6'
commit transaction
end try
begin catch
if @@TRANCOUNT>0 rollback transaction
end catch