我想将记录插入TempTable。像这样:
insert into ##tempT
SELECT * FROM MyTable
MyTable包含大量记录,因此“插入”需要很长时间。
如果我试图跑:
SELECT COUNT(*) FROM ##tempT
它始终返回“0”,直到INSERT INTO命令插入“MyTable”中的所有记录。
如何获得进度计数,告诉我## tempT中有多少记录?
我需要在SQL命令运行时更新进度条值。
谢谢。
答案 0 :(得分:8)
尝试
set transaction isolation level read uncommitted
SELECT COUNT(*) FROM ##tempT
答案 1 :(得分:1)
您可以拆分查询。
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字段来完成这项工作。您可以通过多种方式进行搜索。
答案 2 :(得分:1)
使用存储过程并DECLARE变量COUNT并将其视为循环变量,每次完成插入时,将COUNT递增1,并在想知道计数时继续使用其他查询打印它。或者,返回此从程序中计算并将其读入您的程序以更新进度条。 :)