⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 05.txt

📁 包含了几个由sql server2005开发的典型程序
💻 TXT
字号:
【例5-1】利用事务的概念执行“删除后勤部”操作
declare @transaction_name  varchar(32) /* 声明一个32位的varchar型变量 */
select @transaction_name = ' my_transaction_delete '
/* 设置该类变量名为my_transaction_delete */
begin transaction  my_transaction_delete
go    /* 关于命令 go 的用法请参见第6章存储过程和触发器 */
use company  /* 使用company 表*/
go
delete from department where dept_id = ’1012’
go
delete from employee where dept_id = ’1012’
go
commit transaction my_transaction_delete
go

【例5-2】删除后勤部,将后勤部的职工划归到经理室。
begin transaction my_transaction_delete
use company  /* 使用company 表*/
go
delete from department  where  dept_id = ’1012’

save transaction after_delete   /* 设置事务恢复断点*/

update employee
set dept_id = ’1001’  where  dept_id = ’1012’
/*后勤部的职工编号变成经理室编号*/
if @@error!=0 or @@rowcount=0 then
begin
rollback tran after_delete
 /* 回滚到保存点 after_delete,如果使用 rollback my_transaction_delete,则会回滚到事务开始前*/
commit tran
print ‘更新员工信息表时产生错误’
return
end

commit transaction my_transaction_delete
go

【例5-3】 修改0000000学生的学号为0001156。本处的事务是为了保证数据(学号)Score表和IDInfo表的一致性 
BEGIN TRAN MyTran /* 开始一个事务 */ 
UPDATE Score /* 更新Score表 */ 
SET S_No='0001156' 
WHERE S_No='0000000' 
IF @@ERROR<>0  /* 检测是否成功更新,@@ERROR返回上一个SQL语句状态 */
BEGIN 
PRINT '更新成绩表时出现错误' 
ROLLBACK TRAN  /* 回滚 */
RETURN 
END 
UPDATE IDInfo /* 更新IDInfo表 */ 
SET S_No='0001156' 
WHERE S_No='0000000' 
IF @@ERROR<>0 /* 检测是否成功更新,@@ERROR返回上一个SQL语句状态 */ 
BEGIN 
PRINT 'An Error occur During UPDATE the table [IdInfo]' 
ROLLBACK TRAN /* 回滚 */ 
RETURN 
END 
COMMIT TRAN MyTran /* 提交事务 */ 

【例5-6】图书查询系统中保证查询单据号唯一的应用程序使用锁的例子
Use BookTable
GO

DECLARE  @ShareOK   INT    /*声明一个整型变量ShareOK */
 /*系统存储过程sp_GetAppLock带两个参数Recourse 和LockMode *,并返回一个值/
EXEC  @ShareOK=sp_GetAppLock     
@Recourse=’ ConsultTableID’
      @LockMode=’ Exclusive’
IF @ShareOK<0    /*如果独占锁申请失败,则 */
   …错误处理代码
   ….
 /*如果独占锁申请成功,则 */
ConsultTableID= ConsultTableID+1 
EXEC sp_ReleaseAppLock @Recourse=’ ConsultTableID’  
/*如果成功操作后,释放所申请的锁 */
GO

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -