您的位置:首页 > 数据库

sqlserver 事务try-c b42e atch

2016-09-19 09:01 253 查看
通过事务对两个表中的时间进行修改。

结合事务的优点:原子性,一致性,隔离性,持久性;在同时对多个表进行修改的情况使用事务

性能更高;一般事务都是结合存储过程进行处理

create procedure trans
(
@Dt datetime,
@Dtu datetime
)
as
begin try
begin transaction
update LogUser SET logTime=@Dt WHERE logId ='42f72e53-0f0d-4158-a573-fdf2a0b26f59'
UPDATE [User] SET Logtime=@Dtu WHERE Uid = '17266501-CB5C-4377-BD51-74F51D0F6553'
COMMIT
end try
BEGIN CATCH
IF(@@trancount>0)
ROLLBACK
DECLARE @ErrMsg NVARCHAR(4000),@ErrSeverity INT
SELECT @ErrMsg=ERROR_MESSAGE(),@ErrSeverity=ERROR_SEVERITY()
RAISERROR(@ErrMsg,@ErrSeverity,1)
END CATCH


执行方式:可以在代码中传递参数进行调用、也可以在sql中进行直接调用;

这里简单在sql中处理了一下

DECLARE @tt varchar(50)='2014'
DECLARE @ttu varchar(50)='2015'
exec trans @tt,@ttu


可以根据修改参数测试不同的结果,错误时的显示和正确时的显示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: