2014-01-15 103 views
-1

我們正在創造這個交叉分析報表..在SQL Server在時間生成查詢2008年SQL Server行大小

在選擇時,用戶使節目名稱,因爲它是給下面的錯誤列之一:

創建或更改表'FakeWorkTable'失敗,因爲最小行大小將爲11852,其中包括189個字節的內部開銷。這超過了8094字節的最大允許錶行大小。

查詢應像返回: 日期計劃1 ...計劃100 ... 500計劃

它會告訴電視節目datewise一些信息。

有什麼辦法可以增加這一行的大小?

請讓我知道在任何情況下,任何其他信息是必要的。

問候

+0

程序列的類型是什麼? –

+1

'SELECT LEFT 500 * FROM dbo.WishfulThinking' – billinkc

+2

你真的需要SQL Server來返回所有500列嗎?爲什麼不在表示層中進行這種類型的轉換? – Taryn

回答

0

我的代碼如下:

set @query 
     = 'SELECT ' + @PivotRowColumn + ',' + @cols + ' from 
     (
      SELECT ' + @SelectCalculationColumn + ', ' + @PivotRowColumn + ', ' + @PivotColumn + ' 
      FROM ##ResultCrosstab 
      --where programName like ''S%'' 
     ) x 
     pivot 
     (
      ' + @CalculateColumn + ' 
      for ' + @PivotColumn + ' in (' + @cols + ') 
     ) p ' 

@ PivotRowColumn/@ PivotColumn可以是任何東西了(SalesHouse /臺/天/周/月/日/產品/ Program/SpotLength/Timeband/Campaign @SelectCalculationColumn是一個關鍵績效指標,例如景點/預算/影響/差異/ TVR等 @cols

對於較大的廣告系列,此問題非常少見。我添加了一個下拉式大小寫用戶選擇程序作爲列。因此,如果用戶遇到錯誤,他們可能會限制程序或使用過濾器(已經存在)

+0

對於更大的報告,我們將創建一個SSAS多維數據集 – user2739418