Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

怎样利用游标操作动态表

丁丁  发表于:2009-11-11 12:10:50  
复制

从sysobjects表中,查出所有用户表表名(其中每个表都有一个共同字段:sign 类型bit),利用游标历遍表名,对每个表的sign字段更新为1。怎样做?请高手们,帮帮忙。

 

 

Top
钱玉炜 发表于:2009-11-11 12:52:03

使用记录集打开你的表,然后循环

Dim rst As New ADODB.Recordset
rst.Open "sysobjects", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
For i = 0 To rst.RecordCount - 1
rst("sign") = 1
rst.MoveNext
Next i



丁丁 发表于:2009-11-11 15:06:56

我想的是在存储过程中,用游标。以便作业调度。



丁丁 发表于:2009-11-12 09:30:36

以下是我想建的一游标操作表,其中USysTables表中,name(用户表名),在红字行出错?请哪位大侠看看错在哪里?

ALTER PROCEDURE op_tableRight
AS
DECLARE @tablename sysname,@tableright int ,@right_date varchar(20)
DECLARE @strsql nvarchar(500)
DECLARE tableCursor CURSOR FOR
SELECT name, TableRight, Right_date FROM USysTables WHERE (Changs = 1)
Open tableCursor
FETCH FROM tableCursor into @tablename,@tableright,@right_date
While @@Fetch_Status=0
begin
select @tablename=rtrim(upper(@tablename))
IF EXISTS(SELECT name FROM '+ @tablename +' WHERE name like '+ @right_date +')
     if @tableright >  0
           exec('UPDATE '"+ @tablename +"'  SET Find_sign = 1 where '+ @right_date +' ='+@tableright +')

FETCH Next FROM tableCursor into @tablename,@tableright,@right_date
end
close tableCursor         
deallocate tableCursor



总记录:3篇  页次:1/1 9 1 :