我有一个大约150 000行的MSSQL服务器,每行都有大量的XML文档。我正在运行查询以更新所有这些内容,它看起来像这样:
UPDATE [dbo].[Table]
SET
[BIGXML].modify
(' replace value of
(/xpath)[1]
with "newValue"
')
目前查询运行大约需要6个小时,不好的是,在此期间,数据库似乎对任何其他查询都没有响应。如何运行查询并保持数据库正常运行?
答案 0 :(得分:1)
如果您一次更新一个记录,表是否会响应。
DECLARE @TableID INT
DECLARE X CURSOR FOR
SELECT Table.ID FROM Table
OPEN X
FETCH NEXT FROM X INTO @TableID
WHILE(@@FETCH_STATUS=0) BEGIN
UPDATE [dbo].[Table]
SET
[BIGXML].modify
(' replace value of
(/xpath)[1]
with "newValue"
')
WHERE
TableID=@TableID
FETCH NEXT FROM X INTO @TableID
END
CLOSE X
DEALLOCATE X