2015-12-10 32 views
0

我在MS SQL Server上遇到更新命令問題。如果我使用.WRITE,則該命令不會執行,即使估計的執行計劃也無法生成。使用.WRITE的MS SQL更新不起作用

表:

CREATE TABLE dbo.Blob 
(
    BlobData VARBINARY(MAX) NULL 
    , BlobId INT IDENTITY(1,1) NOT NULL 
    CONSTRAINT [PK_Blob] PRIMARY KEY CLUSTERED 
    (
    [BlobId] ASC 
) 
) 

,和本是SQL更新:

UPDATE dbo.Blob SET BlobData.WRITE(@Data, NULL, NULL) WHERE BlobId = @Id 

而對於此更新,無法生成執行計劃。 我們已閱讀this article,使用了這些建議,但並未解決問題。

客戶使用MS SQL Server 2008R2 SP2。 我們無法在我們的sql servers (on the same version)上覆制。

請問有什麼可能導致這種情況?或者任何想法在哪裏尋找解決方案。

更新:沒有錯誤信息,只是腳本(計劃生成)運行永恆(或直到我手動停止它)。

Update2:沒有.WRITE,該命令完美地工作。

+0

首先提供的腳本的不正確。然後發佈您已獲得的實際錯誤文本。 :) – Rodion

+0

在簡單的選擇它給你在計劃聚集索引尋求沒有任何問題? – Rodion

+0

謝謝@rudym,我接受了這些建議。抱歉,這是我的第一篇文章。 關於錯誤:沒有錯誤消息,計劃生成運行永恆。 –

回答

0

這是最終溶液: 第1步:ALTER DATABASE Test SET AUTO_CREATE_STATISTICS OFF 第2步:創建一個虛擬統計:CREATE STATISTICS stats_BlobData ON dbo.Blob (BlobData) WITH SAMPLE 0 ROWS, NORECOMPUTE 第3步:ALTER DATABASE Test SET AUTO_CREATE_STATISTICS ON