SQL Transcation的一些总结

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 02:52 点击:

1.1.1 摘要

      相信大家对于SQL Transcation再熟悉不过,它确保了数据库的数据一致性和安全性,尤其在对数据执行增删时,如果发生异常和错误它就会触发事务回滚,从而确保了我们数据的一致性和安全性,下面我们将通过分四部分介绍事件(Transcation)。

 

1.1.2 正文

      首先让我们通过一个具体的例子介绍Transcation的使用,假如我们的数据库中有一个表UserInfo,它包含三个字段分别为:UserID(自增)、UserName (nvarchar)和LuckyNumber (tinyint),如下图所示:

sqltranscation

图1 UserInfo表

 

     UserInfo表的sql代码如下:

-- The definition of UserInfo.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[UserInfo](
    [UserID] [int] IDENTITY(1,1) NOT NULL,
    [UserName] [nvarchar](50) NOT NULL,
    [LuckyNumber] [tinyint] NOT NULL
) ON [PRIMARY]

     接着我们要把数据插入到表UserInfo中,这里使用一个存储过程把数据插入到该表中,存储过程SPAddDataToUserInfo的定义如下:

 

 

-- =============================================
-- Author:        JKhuang
-- Create date: 12/8/2011
-- Description:    Inserts data
-- =============================================
CREATE PROCEDURE SPAddDataToUserInfo

AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Hard code inserted data.
    INSERT INTO UserInfo VALUES('JKhuang', 8);
    INSERT INTO UserInfo VALUES('JKRush', 23);
    INSERT INTO UserInfo VALUES('Jackson', 20111111);
END
GO

 

 

     现在我们已经定义了一个存储过程,接着让我们执行该存储过程。

 

sqltranscation0

图2执行存储过程的消息

 

     通过上图我们知道在执行存储过程中发生了异常,而且是由于值“20111111”数据超出了tinyint的范围产生的,现在让我们看一下数据插入的情况。

 

sqltranscation1

图3 UserInfo表中数据

 

      我们发现只插入了两行数据,而第三行数据没有成功插入,但为了确保数据完整性,我们要把数据全部插入或全部不插入,这时我们可以考虑使用Transcation来确保数据完整性和安全性。

     接着让我们修改一下存储过程SPAddDataToUserInfo,在存储过程中添加Transcation。

 

 

-- =============================================
-- Author:        JKhuang
-- Create date: 12/8/2011
--

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • sql常见面试题
      • SQL SERVER 2005性能之跟踪
      • SQL编程(一)
      • LINUX上RMAN自动备份脚本
      • sql server面试题
      • 如何将多个SQL查询统计结果一次显示出来
      • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
      • sql server 列转行
      • SQL小技巧系列 --- 行转列合并
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1