我想将记录插入到TempTable中。如下所示:
insert into ##tempT
SELECT * FROM MyTable MyTable包含大量记录,因此“插入到”需要很长时间。
如果我尝试运行:
SELECT COUNT(*) FROM ##tempT它总是返回"0“,直到INSERT INTO命令插入了"MyTable”中的所有记录。
怎样才能得到进度计数,告诉我##tempT中有多少条记录?
我需要在SQL命令运行时更新进度条值。
谢谢。
发布于 2012-03-30 16:42:30
试一试
set transaction isolation level read uncommitted
SELECT COUNT(*) FROM ##tempT发布于 2012-03-30 16:43:55
你可以拆分你的查询。
x = number of records in MyTable / 100
i = 0
do until we're done
queryString = "insert into ##tempT "
queryString += "select top " + x " + " * FROM MyTable "
queryString += "where RecordNumber > " + i
Execute queryString
Update Progress Bar
i = i + x
loop您将注意到,您将需要某种类型的RecordNumber字段才能使其工作。你可以搜索各种方法来实现这一点。
发布于 2012-03-30 16:49:26
使用一个存储过程并声明一个变量COUNT,并将其视为循环变量,每次执行插入操作时,将COUNT递增1并继续使用另一个查询打印它,只要您想知道count .Or,就从该过程中返回此count并将其读入程序中以更新进度条。:)
https://stackoverflow.com/questions/9939519
复制相似问题