MS Sql事务

1、以下是一个简单事务存储过程,其中Users表ID为主键

CREATE PROCEDURE SP_TRANSACTION
AS
  BEGIN
     BEGIN TRANSACTION
    INSERT INTO USERS(ID,NAME)VALUES(1000,‘TEST1000‘);
    IF @@ERROR<>0
         GOTO CLEARUP

    INSERT INTO USERS(ID,NAME)VALUES(1000,‘TEST1001‘);
    IF @@ERROR<>0
      GOTO CLEARUP
  COMMIT

  CLEARUP:
    ROLLBACK
 END

备注:

@@ERROR表示如果前一个 Transact-SQL 语句执行没有错误,则返回 0。如果前一个语句遇到错误,则返回错误号。

INSERT INTO USERS(ID,NAME)VALUES(1000,‘TEST1000‘);
print @@ERROR --当主键存在1000时,错误号为2627
print @@ERROR --返回 0,因为上一条Transact-SQL 语句“print @@ERROR”执行没有错

时间: 2024-10-14 00:53:51

MS Sql事务的相关文章

MS SQL 事物日志传送能否跨数据库版本吗?

SQL SERVER的事物日志传送(log shipping)功能,相信很多人都使用过或正在应用,这是MS SQL提供的一个非常强大的功能,一般需要一个主数据库服务器(primary/production database server)和辅助数据库服务器(standby server)来完成这个配置,默认情况下,主数据库和辅助数据库的版本应该是一致的,那么如果这两个数据库版本不一致,会不会有什么问题?还能做log shipping配置吗? 那么数据库版本不一致分两种情况: 1: 类似于MS S

MS SQL 日志记录管理

MS SQL的日志信息/日志记录,可能对你来说,既熟悉又陌生,熟悉是因为你可能一直都在使用,查看.关注一些日志信息/记录,例如,作业历史记录:陌生是因为你可能从不关注日志信息/记录的管理,这里我一直用日志信息/记录这个词,而没有用日志文件这个词来阐述,是想让大家把它和事务日志文件(ldf)区分开来,网上你用日志文件做搜索关键词,可能搜出来的都是事务日志相关的信息.其实它真的也叫日志文件,这篇文章我大概从日志记录分类.如何查看日志记录.日志记录的位置.日志记录的设置.为什么错误日志会暴增.如何清除

MS SQL语句优化

MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没

MS Sql优化(转自网络)

MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没

数据库基础知识总结(MS sql)

基本概念 数据:描述事物的符号称为数据,是存储在数据库中的基本对象. 数据库:数据库是长期存储在计算机上内的有组织.可共享的数据集合. 数据库管理系统:用户和操作系统之间的一层数据管理软件.主要功能包括如下几个方面: >1 数据定义功能:通过数据定义语言DDL(Data Definition Language)实现数据对象的定义 >2 数据组织.存储和管理 >3 数据操纵:通过数据操纵语言DML(Data Manipulation Language),用户可以使用DML操纵数据,实现对数

MS Sql Server 数据库或表修复

提示数据库处于恢复模式时重建日志文件可以解决 DBCC REBUILD_LOG('db_name','c:\mssql7\data\dbxxx_3.LDF') MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令. 1. DBCC CHECKDB  重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误. use master declare @databasen

MS Sql Server 数据库或表修复(DBCC CHECKDB)

MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令.  1. DBCC CHECKDB  重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误. use master declare @databasename varchar(255) set @databasename='需要修复的数据库实体的名称' exec sp_dboption @databasena

MS SQL Server数据库修复/MDF数据文件数据恢复/MDF质疑/mdf无法附加

微软的SQL Server 数据库最常用的有两种类型的文件: 1.主要数据文件,文件后缀一般是.MDF: 2.事务日志文件,文件后缀一般是.LDF. 用户数据表.视图.存储过程等等数据,都是存放在MDF文件里,LDF文件是存放MS SQL Server操作过程中的日志记录. MDF文件必读附加到MS SQL Server数据库环境后,才能正常读取其中的数据.当由于某种原因数据库附加不上,MDF数据库文件的内容就没办法读取,修复的方法有两种: 1. 使用MS SQL Server环境进行修复,先以

【MS SQL】数据库维护计划之数据库备份(二)

原文:[MS SQL]数据库维护计划之数据库备份(二) 上篇[MS SQL]数据库维护计划之数据库备份(一) 说了数据库备份的一些概念后,这篇以HRP_KQYY数据库备份为例,进行备份计划设置. 考虑备份的时间.性能和硬盘空间等因素,备份方案做下面设置: 1.每周日凌晨1:00执行数据库完成备份: 2.每周一至周六凌晨1:00执行数据库差异备份: 3.每天在00:00:00和23:59:59之间.每4小时执行数据库的日志备份. 建立3个文件夹: HRP_KQYY_diff:存放差异备份文件: H