服务热线
153 8323 9821
mssql
事务的使用:
1.begin distributed transaction 指定一个事务的起始。
原型:
Begin destributed tran [ saction] [transaction_name! @tran_name_variable]
例如:
Use northwind
Begin destributed transaction //开始一个分布式事务
Update empoyees //对表empolees 进行更新
Set firstname=’mcdonald’ where homephone = ‘(206) 555-9875’
Commit transaction //结束事务
Go
2.commit transcation 指明事务结束。
3.rollback transcation 撒销对数据库作出的所有改变,返回到事务开始之前的状态。
原型:
Rollback [tran [saction] [transaction_name] @tran_name_variable | savepoint_name |
@savepoint_variable]
参数说明:
Transadtion 给begin transaction上的事务指派的名称。
@tran_name_bariable 用户定义的、含有有效事务名称的变量名称。
Savepoint_name 是来自SAVE TRANSACTION语句的svepoint_name。
@savepoint_variable 是用户定义的、含有有效保存点名称的变量的名称。
例如:
Begin transaction royaltychange //事务开始
Update titleauthor //更新表
Set royaltyper = 65 //重设参数
From titleauthor,titles
Where royaltyper=75
And titleauthor.title_id=titles.title_id
And title=’The Gourmet Microwave’
Update titleauthor
Set royaltype = 15
From titleauthor, titles
Where royaltyper=25
And titleauthor.title_id=titles.title_id
And title = ‘The Gourmet Microwave’
Save transaction percentchanged //在事务内设置保存点
Update titles
Set price = price* 1.1
Where title =’The Gourmet Microwave’
Select (price * royalty * ytd_sales)* royaltyper
From titles,titleauthor
Where title=’The Gourmet Microwave’
And titles.title_id=titleauthor.title_id
Rollback transaction percentchanged //回到先前保存过的保存点
Commit transaction // 事务结束
4.save transaction 在事务内设置保存点。
5.commit work 标志事务的结束。
6.rollback work 将用户的事务回滚到事务的起点。
游标的使用:
1.declare cursor 定义游标结构并分配资源。
原型:
Declate cursor_name [insensitive] [scorll] cursor for select_statement [for { read
Only | update }[of column _list]]
或者:
Declare cursor_name cursor [local | global] [forward_only | scroll] [static | keyset |
dynamic] [read_only | scroll_locks | optimistic] for [select _statement
[ for {read only | update } [of column_list]]]
参数说明:
INSENSITIVE 指明要为检索到的结果集建立一个临时拷贝,以后的数据从这个临时拷贝中获取。原有基表中数据发生了改变,对于游标而言是不可见的。这种不敏感的游标不允许数据更改。
SCROLL 指明游标可以在任意方向上滚动。忽略该选项,则游标只能向前滚动。
SELECT_SATAEMENT 指明SQL语句建立的结果集。
READ ONLY 指明在游标结果集中不允许进行数据更改。
UPDATE 指明游标结果集可以进行修改。
OF COLUMN_LIST 指明结果集中可以进行修改的列。缺省时(使用UPDATE关键字),所有的列都可进行修改。
LOCAL 指明游标是局部的,只能在它所声明的过程中使用。全局的游标在连接激活的任何时候都是可用的。只有池连接结束时,才不再可用。
GLOBAL 使用游标对于整个连接全局可见。
FORWARD_ONLY 指明游标只能向前滚动。
STATIC 与INSENITIVE的游标相同。
KEYSET 指明选取的行的顺序。
DYNAMIC 指明游标反映所有对结果集的修改。
SCROLL_LOCK 对修改或删除加锁。保证游标操作成功。
OPTIMISTIC 指明哪些通过游标进行的修改或者删除将不会成功。
例如:
Use northwind
Go
Declare customers_cursor cursor //定义游标