试图从链接服务器插入当前命令上的严重错误



我正在使用SQL Server 2008 SP3,并尝试从链接的服务器插入约200K行,但是过了一会儿,我收到此错误:

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

此错误发生:

  • 几乎总是,但有时它可以正常工作。
  • 当选择仅限于顶部(10(。
  • 有时当我执行选择加入本地表时。

我已经签出的东西:

  • 我可以在没有加入的情况下从链接服务器中获取所有行。
  • 在本地和链接服务器上的所有数据库中完成了检查,没有错误。
  • 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

感谢您的帮助!

尝试读取也在不使用锁定的数据时可能会发生这种情况。删除(nolock(表提示。

即使基础数据没有变化,阅读不承认的数据也很有风险,也不建议:

使用Nolock,您可以:

  • 请参见两次
  • 完全跳过行
  • 请参阅从未投入的数据
  • 让您的查询失败,错误
  • 如果您对此很酷,很棒 - Nolock适合您。

最新更新