WindowsServer2008上のSQLServer2008では、以下のクエリがあり、実行時に古い「文字列またはバイナリデータが切り捨てられます」を取得します。
しかし、ここで本当に奇妙なことは、最後のフィールドの値(isOrganiser)を2から9の間に変更すると、正常に実行されることです。114841を114741に変更した場合も同じです(そしてそのパターンは続きます)。それで、問題は整数フィールドによって引き起こされていますか?またはビットフィールド?何?
だから私は困惑しています。いくつかの追加情報:
- 一部のint列にはインデックスがあります。すべてを無効にしましたが、同じ問題が発生します。
- このクエリは、この他のアプリケーションのいたるところに実行され、問題が発生したことはありません。ここで異なるのは、おそらくレコードの量だけです。
- IDはFKですが、SQLでは制約は適用されません。
このテーブルには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 );