以前的开发人员创建了一个表,用于存储服务器中文件的绝对路径。我希望将它们转换为相对路径。
我已经编写了将字符串正确地剥离到相对路径的部分。我的问题是理解如何基本上更新每个记录,使用自己的字符串的新版本。
这是我最初的尝试:
UPDATE LFRX_Attachments
SET [File] = (SELECT TOP 1 SUBSTRING([File], PATINDEX('%Files\%', [File]) + 6, LEN([File]))
FROM LFRX_Attachments A
WHERE [Type] = 4 AND AttachmentId = A.AttachmentId)
然而,这只是以史诗般的方式,只是覆盖每一条记录,以获得表中第一张唱片的价值。有什么建议吗?
答案 0 :(得分:4)
UPDATE LFRX_Attachments
SET [File] = SUBSTRING([File], PATINDEX('Files\', [File]) + 6, LEN([File]))
WHERE [Type] = 4
答案 1 :(得分:1)
从可读性/维护的角度来看,最好选择要更改的数据,然后迭代结果集并分别更新每条记录。
答案 2 :(得分:0)
这对你有用吗?
UPDATE LFRX_Attachments SET [File] = SUBSTRING([File],PATINDEX('Files \',[File])+ 6,LEN([File]))