2013-03-18 188 views
0

在Windows Server 2008上的SQL Server 2008上,我有下面的查詢並執行,我得到舊的'字符串或二進制數據將被截斷'。字符串或二進制數據將被截斷 - 整數?

但是,這裏真正奇怪的是,如果我將最後一個字段值(isOrganiser)更改爲2和9之間,它運行良好。如果我將114841更改爲114741(並且該模式繼續),則是同樣的事情。所以這個問題是由整數字段引起的?或位字段?什麼?

所以我很難過。幾個額外的信息位:

  1. 一些int列有索引 - 我已禁用它們所有,我得到同樣的問題。
  2. 此查詢運行遍佈在此的其他應用程序的地方,從未有過一個問題 - 唯一不同,這裏也許是記錄的數量
  3. 雖然ID是FK的,約束不在SQL
  4. 執行

    此表具有一個ID列(100001種子和+1個增量) - 每次執行錯誤時,沒有插入記錄,但插入的下一個記錄的ID會增加,就像前一個錯誤已插入一樣

    INSERT INTO [emailRecipient] (
        [recordTitle], 
        [createdByID], 
        [canUpdate], 
        [canDelete], 
        [isDeleted], 
        [canRemove], 
        [drsQuickSummary], 
        [drsSummary], 
        [isEditLocked], 
        [sourceRID], 
        [insertIndex], 
        [isSaved], 
        [allowNextInsertTrigger], 
        [allowNextUpdateTrigger], 
        [allowNextDeleteTrigger], 
        [emailRID], 
        [personID], 
        [organisationID], 
        [emailAddressID], 
        [emailAddress], 
        [isOrganiser] 
    ) 
    
    VALUES (
        '', 
        100002, 
        1, 
        1, 
        0, 
        0, 
        '', 
        '', 
        0, 
        '', 
        1, 
        1, 
        1, 
        0, 
        0, 
        100753, 
        102969, 
        114841, 
        102434, 
        '[email protected]', 
        0 
    ); 
    
+1

桌子上有觸發器嗎? 'emailAddress'的數據類型(包括長度)是什麼,'isOrganiser'是什麼? 「allowNext ...觸發器」列的用途是什麼?此表是否也嵌套觸發器?這難道不是可能發生在這些觸發器的某處嗎? – 2013-03-19 00:57:57

+0

@Aaron Bertrand你是對的。它發生在父表5上的觸發器上。我不敢相信我沒有想到跟着它走下去。非常感謝指針! 另外,我在這裏還是一個新東西 - 將這個答案表達爲答案但將它歸因於你的正確禮儀是什麼? – 2013-03-19 12:10:34

+0

我已經發布我的猜測作爲答案。很高興我是對的,這有幫助。你怎麼陷害這個錯誤?該錯誤消息可能包括ERROR_PROCEDURE,儘管它的名稱 - 它會告訴你哪個觸發器發生錯誤。 – 2013-03-19 12:57:56

回答

1

我懷疑截斷髮生在您的觸發器之一中。

哦,還有5個觸發器?我懷疑這裏可能會發生一些優化。 :-)

相關問題