我正在使用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适合您。