出現錯誤「無法創建大於最大允許行大小8060的行8766」。無法創建大於8060的大小的行(此錯誤消息的奇怪情況)
這發生在查詢中,列數很多,約300,大部分類型爲「int」或「float」。該查詢計算具有31列(每天一個)的HRM報告。在此發佈此查詢可能需要太多空間,但如果您堅持,我可以。我確信300列浮點數(4甚至8字節)和一些變量不能超過8060字節。不過,錯誤發生了。問題是,它發生在一個奇怪的方式。
在此查詢的第一級,它看起來是這樣的:
select
Title,
K0Present, K1Present, K2Present,
HT,K0_T,
case when bla bla then bla bla when bla bla then bla bla end as Y01,
case when bla bla then bla bla when bla bla then bla bla end as Y02
...
case when bla bla then bla bla when bla bla then bla bla end as Y31
from
(_inner_query_)
order by Title
現在,內部查詢有大約300列。在外部查詢中,我們有37列。它會導致錯誤消息。
但是,如果我把它改成這樣:走了
select
*,
case when bla bla then bla bla when bla bla then bla bla end as Y01,
case when bla bla then bla bla when bla bla then bla bla end as Y02
...
case when bla bla then bla bla when bla bla then bla bla end as Y31
from
(_inner_query_)
order by Title
錯誤信息!儘管現在在輸出窗口中有大約300個庫侖!
我該如何解決這個問題?我沒有一點線索。也許有一些奇怪的查詢優化器?也許它以某種方式錯誤地優化了我的查詢?
我假設這只是一個選擇而不是插入,在這種情況下,這可能是由計劃中的排序引起的,並且對查詢的更改以這樣的方式更改計劃不再需要。你能發佈確切的錯誤嗎? – SQLGobbleDeGook
正如我所說的,確切的錯誤是「無法創建大於最大允許行大小8060的8766行」 – Istrebitel