簡體   English   中英

使用視圖聯合插入表中導致問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM