Серьезная ошибка произошла в текущей команде при попытке вставить со связанного сервера - PullRequest
0 голосов
/ 28 апреля 2018

Я работаю с SQL Server 2008 с пакетом обновления 3 (SP3) и пытаюсь вставить около 200 тыс. Строк со связанного сервера, но через некоторое время я получаю эту ошибку:

A severe error occurred on the current command.  The results, if any, should be discarded.

Эта ошибка происходит:

  • Почти всегда, но иногда это работает правильно.
  • Не, когда SELECT ограничен TOP (10).
  • Иногда, когда я выполняю соединение SELECT с локальной таблицей.

То, что я проверил:

  • Я могу получить все строки со связанного сервера без JOIN.
  • Выполнено CHECKDB во всех базах данных на локальном и связанном сервере, ошибок нет.
  • CHKDSK на всех дисках на локальном и связанном сервере, без ошибок.

Это целевая таблица:

CREATE TABLE [dbo].[TargetTable](
    [ProdID] [varchar](40) NOT NULL,
    [Download] [bigint] NULL,
    [ImageID] [varchar](200) NULL,
    [ImageWeight] [int] NULL,
    [ImageWidth] [int] NULL,
    [ImageHeight] [int] NULL,
    [ImageAngle] [varchar](200) NOT NULL,
    [MfPN] [varchar](40) NOT NULL,
    [ContentGuid] [varchar](200) NOT NULL,
    [MediaTypeID] [int] NOT NULL,
    [MimeType] [varchar](50) NOT NULL,
    [URL] [varchar](500) NOT NULL,
    [Timestamp] [datetime] NULL,
    [_DateLastUpdated] [datetime] NULL
) ON [PRIMARY];

И этот запрос я использую для вставки

INSERT INTO [dbo].[TargetTable]
(
    [ProdID],
    [Download],
    [ImageID],
    [ImageWeight],
    [ImageWidth],
    [ImageHeight],
    [ImageAngle],
    [MfPN],
    [ContentGuid],
    [MediaTypeID],
    [MimeType],
    [URL],
    [Timestamp],
    [_DateLastUpdated]
)
SELECT
    i.ProdID
    ,i.Download
    ,i.ImageID
    ,i.ImageWeight
    ,i.ImageWidth
    ,i.ImageHeight
    ,i.ImageAngle
    ,i.MfPN
    ,i.ContentGuid
    ,i.MediaTypeID
    ,i.MimeType
    ,i.[Url]
    ,i.[Timestamp]
    ,i._DateLastUpdated

FROM [LinkedServer].[Database].[dbo].[view_Source] i WITH(NOLOCK)
    LEFT JOIN [LocalDatabase].[dbo].[TargetTable] t WITH(NOLOCK)
        ON i.ContentGuid = t.ContentGuid AND i.ProdID= t.ProdID
WHERE
    t.ContentGuid IS NULL

Спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...