游标

来源:互联网 发布:禾田软件怎么样 编辑:程序博客网 时间:2024/04/28 13:54

    1, 呵呵,没有想到我现在才知道,Sql 中用like 的方法,例如 like 'abc' 这样相当于 ='abc' ,如果想达到模糊查询是要用到%,-,[],[^]等字符的,哈哈

    2,当用到复制表时

           select * into tableB from stz  产生一个新表

           insert into tableB select * from Table ,把一个表中的数据复制的一个已经存在的表中去,这里要注意,字段个数,类型要匹配

    3,游标

          :@@FETCH_STATUS (Transact-SQL)

语法:@@FETCH_STATUS

返回值

返回值说明

0

FETCH 语句成功。

-1

FETCH 语句失败或行不在结果集中。

-2

提取的行不存在。

 


 

 --2009年5月15日21:57:33
--游标实例  利用游标循环表 根据userid赋值
alter PROCEDURE CURSOR_EG1
AS
BEGIN
declare @a int,@error int
declare @temp varchar(50)--临时变量,用来保存游标值
set @a=1 set @error=0
BEGIN TRAN --申明事务
--申明游标 为userid
declare order_cursor CURSOR FOR select userid from usertable
--打开游标
open order_cursor
 WHILE @@FETCH_STATUS = 0 --返回被 FETCH  语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
  begin
   --开始循环游标变量
   FETCH NEXT FROM order_cursor INTO @temp
   --执行sql操作
   update usertable set userpwd=username ,chinesename=@a where
userid=@temp
   set @a=@a+1
   set @error=@error+@@error --记录每次运行sql后 是否正确  0正确
  end
if @error=0--没有错误 统一提交事务
 begin
  commit tran--提交
 end
else
 begin
     rollback tran--回滚
 end
CLOSE order_cursor--关闭游标
DEALLOCATE order_cursor--释放游标
END

 

/**自己写的一个

    declare @name varchar(50),@age int

   declare youbiao cursor from select name,age from test

   open youbiao

   fetch next from youbiao into @name,@age

   while(@@fetch_Status=0)

   begin

   select @name,@age

   fetch next from youbiao into @name,@age--好象必须写这里

 

   end

 

   close youbiao

   deallocate youbiao

 

**/

 

原创粉丝点击