---------------------------------------------------------------------------
一个简单游标,依次print表test的name字段
declare @name varchar(50)
declare @sql varchar(100)
declare csr1 cursor
for
select name from test
open csr1FETCH NEXT FROM csr1 INTO @name
while (@@FETCH_STATUS=0)
BEGIN
print @name
fetch next from csr1 into @name
END
CLOSE csr1
DEALLOCATE csr1
一个简单游标,依次print表test的name字段
declare @name varchar(50)
declare @sql varchar(100)
declare csr1 cursor
for
select name from test
open csr1FETCH NEXT FROM csr1 INTO @name
while (@@FETCH_STATUS=0)
BEGIN
print @name
fetch next from csr1 into @name
END
CLOSE csr1
DEALLOCATE csr1
...
fetch next from test_cur into @table_name
while @@fetch_status=0
begin
set @sql ='select count(*) from '+@table_name
exec(@sql)
fetch next from test_cur into @table_name
end
...
bulk insert #temp from 'c:\test_table_name.txt' --将表名导入临时表declare @table_name varchar(20)--变量表名@table_name
declare @sql varchar(200) --**** 这个变量最好定义大一点 ***---declare test_cur cursor for --使用游标逐条操作
select test_table_name from #temp open test_cur
fetch next from test_cur into @table_name --*** @sql 这里的变量按道理应该是这个吧,当然不改也没错
while @@fetch_status=0
begin
set @sql ='select count(*) from '+@table_name
exec(@sql) fetch next from test_cur into @table_name ---*** 少了这一句,所以造成死循环 ***--end
close test_cur
deallocate test_curdrop table #temp
fetch next from test_cur into @table_name ---*** 少了这一句,所以造成死循环 ***--没有这一句的话,@@fetch_status的值就不会改,那就一直=0,所以就造成死循环了.
-----------------------
fetch next from test_cur into @table_name --*** @sql 这里的变量按道理应该是这个吧,当然不改也没错
我初步试了一下,如果改成@table_name 可以出来多条查询结果,但是如果写成@sql的话,只出来最后一条查询结果。
--------------------------
如果不从文本文件中读取数据,从INI文件中,是不是就要用到其他的编程工具了?例如DELPHI?