Я работаю с 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
Спасибо за вашу помощь!