2016-12-22 44 views
0

我有一個存儲過程,它使用pivot函數創建一個表(我們稱之爲表A)。爲了保持整潔,我創建了另一個過程,我希望將數據透視表結果插入到表A中,但是插入函數看起來不能與透視函數結合使用,任何人都不知道如何工作在這附近?將樞軸結果附加(插入)到現有SQL表

此外,這兩個過程都能正常工作,而不是插入到第二個元素中。

腳本的轉動部件如下:

INSERT INTO dbo.A 
CAST([ColumnA] AS VARCHAR(500)) 
,ColumnB 
,ColumnC 
,ColumnD 
,ColumnE 
,Apr = IsNull([1],0) 
,May = IsNull([2],0) 
,Jun = IsNull([3],0) 
,Jul = IsNull([4],0) 
,Aug = IsNull([5],0) 
,Sep = IsNull([6],0) 
,Oct = IsNull([7],0) 
,Nov = IsNull([8],0) 
,[Dec] = IsNull([9],0) 
,Jan = IsNull([10],0) 
,Feb = IsNull([11],0) 
,Mar = IsNull([12],0) 
,YTD = IsNull([13],0) 
From xx_CTE 
PIVOT (
    Sum(value) 
    For month in ([1],[2],[3],[4],[5],[6],[7], 
      [8],[9],[10],[11],[12],[13]) 
) AS Summary 

對於上面我得到...

(39318行(S)的影響)

( 2883行受影響)

(3616行受影響)Msg 8152,Level 16,State 14,Procedure usp_sproc1,Line 109 Strin g或二進制數據將被截斷。 聲明已被終止。

(1行(S)的影響)

任何幫助,將不勝感激。

由於

傑米

+0

請張貼的所有代碼,包括確定指標CTE。 –

+0

您的插入語句失敗,因爲A-E列中的某些內容不適合您的表格,則該值太長。您需要增加表格中文本列的大小,或者只需將這些列的最左邊字符插入列定義長度。這個關鍵只是讓你感到困惑。 – Beth

回答

0

選項1

的第一列在你的目標表短於500
列數據截斷到適當大小,或增加目標列尺寸。

選項2

您對造成這一問題的目標表triggers

0

感謝您的意見。我現在想通了,目標表中某列的字段大小是varchar(8),我試圖插入9個字符!我會最終到達那裏。

乾杯 傑米