[英]insert into table using union of views causing issues
我試圖通過執行視圖聯合將數據插入到臨時表中,但我收到以下錯誤。這可能是它的原因 當我正常選擇查詢運行正常。
由於此查詢中定義的提示,查詢處理器無法生成查詢計划。 重新提交查詢而不指定任何提示,也無需使用SET FORCEPLAN。
insert into #temp
SELECT 'aaa', COUNT(*) FROM view1
UNION
SELECT 'bbb', COUNT(*) FROM view2
UNION
SELECT 'ccc', COUNT(*) FROM view3
UNION
SELECT 'ddd', COUNT(*) FROM view4
UNION
SELECT 'eee', COUNT(*) FROM view5
UNION
SELECT 'fff', COUNT(*) FROM view6
UNION
SELECT 'ggg', COUNT(*) FROM view7
UNION
SELECT 'hhh', COUNT(*) FROM view8
您所寫的應該可以。 檢查2件事。 由於它是一個臨時表,因此請檢查是否從視圖的UNION中刪除任何視圖都可以修復該表。 然后,單獨檢查該視圖。 編寫所有視圖的腳本,並檢查其中是否使用了諸如NOLOCK,EXPAND等提示,以及哪個引起了問題。
另外,您可以嘗試這樣寫
insert into #temp
SELECT field, total FROM
(SELECT 'aaa' field, COUNT(*) total FROM view1
UNION
SELECT 'bbb', COUNT(*) FROM view2
UNION
SELECT 'ccc', COUNT(*) FROM view3
UNION
SELECT 'ddd', COUNT(*) FROM view4
UNION
SELECT 'eee', COUNT(*) FROM view5
UNION
SELECT 'fff', COUNT(*) FROM view6
UNION
SELECT 'ggg', COUNT(*) FROM view7
UNION
SELECT 'hhh', COUNT(*) FROM view8) Z
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.