SELECT * FROM Fee_DetailBillTemp 写错了 SELECT * FROM ttt to:mschen(发光的星星) 我执行这个操作时没有用户来查询这个表就我自己在用啊
TaskID重复,不能决定删除哪个,悬而未决, 再加一个条件吧
caoshangfei(草上飞) :你理解错了 我是用下面的语句在查询分析器中运行,不能给出结果 ,一直运行 delete FROM dbo.ttt WHERE dbo.ttt.TaskID IN (Select dbo.Fee_TaskTrace.TaskID From Fee_TaskTrace INNER JOIN Fee_CallLog ON Fee_CallLog.CallID = Fee_TaskTrace.CallID where Fee_CallLog.BeginTime > '2005-5-2 23:59:59' AND Fee_CallLog.CallType = '1' ) 手动中止后用 select FROM dbo.ttt WHERE dbo.ttt.TaskID IN (Select dbo.Fee_TaskTrace.TaskID From Fee_TaskTrace INNER JOIN Fee_CallLog ON Fee_CallLog.CallID = Fee_TaskTrace.CallID where Fee_CallLog.BeginTime > '2005-5-2 23:59:59' AND Fee_CallLog.CallType = '1' )马上就执行完了,两者的差别就是select 和delete ,为什么delete会一直运行呢
数据量太大了,删得慢。赖心等等,一般 DELETE比SELECT慢得多。
你把: delete FROM dbo.ttt WHERE dbo.ttt.TaskID IN (Select dbo.Fee_TaskTrace.TaskID From Fee_TaskTrace INNER JOIN Fee_CallLog ON Fee_CallLog.CallID = Fee_TaskTrace.CallID where Fee_CallLog.BeginTime > '2005-5-2 23:59:59' AND Fee_CallLog.CallType = '1' ) 拆成: Select dbo.Fee_TaskTrace.TaskID as tid into #t From Fee_TaskTrace INNER JOIN Fee_CallLog ON Fee_CallLog.CallID = Fee_TaskTrace.CallID where Fee_CallLog.BeginTime > '2005-5-2 23:59:59' AND Fee_CallLog.CallType = '1'DELETE FROM dbo.ttt WHERE dbo.ttt.TaskID IN(SELECT tid FROM #t) --DROP TABLE #t 两句话试试呢?
用一个我不了解的词
死锁? hoho
WHERE dbo.ttt.TaskID IN (这句什么意思?
to:mschen(发光的星星) 我执行这个操作时没有用户来查询这个表就我自己在用啊
delete FROM dbo.ttt
WHERE dbo.ttt.TaskID IN (Select dbo.Fee_TaskTrace.TaskID From Fee_TaskTrace INNER JOIN Fee_CallLog ON
Fee_CallLog.CallID = Fee_TaskTrace.CallID
where Fee_CallLog.BeginTime > '2005-5-2 23:59:59' AND
Fee_CallLog.CallType = '1'
)
手动中止后用
select FROM dbo.ttt
WHERE dbo.ttt.TaskID IN (Select dbo.Fee_TaskTrace.TaskID From Fee_TaskTrace INNER JOIN Fee_CallLog ON
Fee_CallLog.CallID = Fee_TaskTrace.CallID
where Fee_CallLog.BeginTime > '2005-5-2 23:59:59' AND
Fee_CallLog.CallType = '1'
)马上就执行完了,两者的差别就是select 和delete ,为什么delete会一直运行呢
DELETE比SELECT慢得多。
delete FROM dbo.ttt
WHERE dbo.ttt.TaskID IN (Select dbo.Fee_TaskTrace.TaskID From Fee_TaskTrace INNER JOIN Fee_CallLog ON
Fee_CallLog.CallID = Fee_TaskTrace.CallID
where Fee_CallLog.BeginTime > '2005-5-2 23:59:59' AND
Fee_CallLog.CallType = '1'
)
拆成:
Select dbo.Fee_TaskTrace.TaskID as tid into #t
From Fee_TaskTrace INNER JOIN Fee_CallLog ON Fee_CallLog.CallID = Fee_TaskTrace.CallID
where Fee_CallLog.BeginTime > '2005-5-2 23:59:59' AND
Fee_CallLog.CallType = '1'DELETE FROM dbo.ttt WHERE dbo.ttt.TaskID IN(SELECT tid FROM #t)
--DROP TABLE #t
两句话试试呢?