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, 
        'me@myplace.com', 
        0
    );
    
4

1 回答 1

1

我怀疑截断发生在您的一个触发器中。

哦,还有 5 个触发器?我怀疑这里可能会发生一些优化。:-)

于 2013-03-19T12:56:32.200 回答