如何利用Transact-SQL执行事务
如何利用Transact-SQL执行事务
下列存储过程说明了如何在Transact-SQL过程内执行事务的支金转移操作。
CREATE PROCEDURE MoneyTransfer @FromAccount char(20), @ToAccount char(20), @Amount money AS BEGIN TRANSACTION -- PERFORM DEBIT OPERATION UPDATE Accounts SET Balance = Balance - @Amount WHERE AccountNumber = @FromAccount IF @@RowCount = 0 BEGIN RAISERROR('Invalid From Account Number', 11, 1) GOTO ABORT END DECLARE @Balance money SELECT @Balance = Balance FROM ACCOUNTS WHERE AccountNumber = @FromAccount IF @BALANCE < 0 BEGIN RAISERROR('Insufficient funds', 11, 1) GOTO ABORT END -- PERFORM CREDIT OPERATION UPDATE Accounts SET Balance = Balance + @Amount WHERE AccountNumber = @ToAccount IF @@RowCount = 0 BEGIN RAISERROR('Invalid To Account Number', 11, 1) GOTO ABORT END COMMIT TRANSACTION RETURN 0 ABORT: ROLLBACK TRANSACTION GO
该存储过程使用BEGIN TRANSACTION, COMMIT TRANSACTION,和ROLLBACK TRANSACTION状态手工控制事务。
根据您访问的内容,您可能还对以下内容感兴趣,希望对您有帮助:
答:选择题吗?ABCD都有的 事务的四大特性:原子性、一致性、分离性、持久性 (1) 原子性 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。 事务的原子性...
答:尝试一下用Windows验证
答:1.找到要附加的.mdf文件--------->右键--------->属性--------->安全--------->选择当前用户--------->编辑--------->完全控制。 2.对.log文件进行相同的处理。
答:DDL:定义语言,如创建表的语句,有create、alter、drop等 DML:数据操作,如果insert、update、delete 处理事务的 begin trans、commit、rollback 基本就这三类吧。
答:--1--create database test2 on(name='test2_dat',filename='D:\SQLDB\test2.mdf',size=3MB,maxsize=9MB,filegrowth=8%)log on(name='test2_log',filename='D:\SQLDB\test2_log.ldf',size=1MB,maxsize=5MB,filegrowth=0)--2.1--use test2create ...
答:SQL Server 2008 定时作业的制定 1.打开【SQL Server Management Studio】,在【对象资源管理器】列表中选择【SQL Server 代理】; 2.鼠标右击【SQL Server 代理】,选择【启动(S)】,如已启动,可以省略此步骤; 3.展开【SQL Server 代理】列表...
如何使用SQL Server Management Studio执行Transac...
答:打开SQL Server Management Studio,在数据库上点击右键,然后打开新的查询窗口就可以了
答:T-SQL中创建函数的方法如下: Create function 函数名(参数) Returns 返回值数据类型 //这里根据需要设置为1或者-1 [with {Encryption | Schemabinding }] [as] begin SQL语句(必须有return 变量或值) End 调用: select 函数名(参数)就可以...
答:在我利用存储过程处理数据的时候,有时候不能确定是否完成了Update或是Delete操作。通过查找资料了解到如下内容: 使用 @@ERROR 如果上一个 Transact-SQL 语句执行成功,@@ERROR 系统函数将返回 0;如果该语句生成错误,@@ERROR 将返回错误号。...
答:用条件语句 IF... else... 这和C语言类似 而SQL中 条件语句IF后的括号可以去掉 if后不用{} 而用begin end else 同理
SET TRANSACTION --定义当前事务数... EXECUTE --动态地执行SQL&...
dbpath 不能包含单引号。这样要求是为了创建数据库目录的 shell 命令能够正确执行。... ERROR: createdb: May not be called in a transaction block. 如果你有一个显式的事务块...
1.先建一个与你要恢复的数据库名称一样的数据库。 2.停止sql server,把你的数据库替换这个数据库。 3.重启sql server,把数据库设置为紧急状态。 sp_configure 'allow...
事务结束。(end transaction)之间执行的全体操作组成。sql server事务回滚代码怎么写:... 那么只只回滚产生错误的 Transact-SQL 语句;设为ON,回滚整个事务begin tran t1 ---启动...
Server 复制到各个数据库或执行分布式查询。数据仓库,从联机事务处理 (OLTP) 系统中提取数据,以及对数据汇总以进行决策支持分析,均可在此仓库中进行。 Transact-SQL 语...
查询管理器里 新建一个连接 在右边打开的编辑域粘贴执行 或者直接打开.sql文件
是 sql,是 sql中的事务,就是说执行多条sql语句的时候,如果要几条sql语句同时执行,就要用到事务,如果其中一条sql或多条sql没有能执行,就会回滚到开始没执行sql的状态
mysql中有没有sqlserver中@@ERROR --返回最后执行的 Trans...
再执行Transact-SQL 语句后,再给这个变量 SET txn_error=1; 最后就可以判断这个变量是否为1,如果为1就回滚事务,否则就提交事务!!
ThinkPHP里怎么直接执行一句SQL语句? - PHP框架开发
$haha = M(); $res = $haha->query($sql); 或 $res = $waw->execute($sql); $sql中包含了表名,实例化模型时可以为空。 注意query是查功能,execute是增删改功能
事务提交语句 COMMIT; 事务回退语句 ROLLBACK;