首页 优化推广 sql语句函数大集合之事务、游标、存储过程及触发器

sql语句函数大集合之事务、游标、存储过程及触发器

来源: | 时间:2011/4/15 16:02:02 |

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    //定义游标 

服务热线

153 8323 9821

功能和特性

价格和优惠

网站和维护

推广和优化

微信服务号