我有一张Preference
桌子。该表中有一个Section
列。对于表中的每个条目,该Section
列将具有由单个空格分隔的多个值。这些值是操作系统路径和/或设置。
例如 `SELECT * FROM Preference' 可能会返回如下内容:
HomeDrive=C:\Windows\ ExternalDrive=D:\ Server=\\server\file\
您会注意到驱动器可以作为字母路径或 UNC 路径输入。困难的部分是,这些条目中的任何地方都可能有设置。另一个例子:
HomeDrive=C:\Windows\ UseHD=True ExternalDrive=D:\ Server=\\server\file\ FavoriteFolder=X
我需要将这些值设置为我的默认值集,无论它们是什么:
HomeDrive=\\myserver\home
ExternalDrive=\\myserver\backup
Server=\\myserver\public
我还必须保留此条目中的所有额外设置,因此不可能将整个条目更改为我的 3 组路径。
我想我会使用这样的东西:
UPDATE Preference
SET Preference= CAST(REPLACE(CAST(Preference AS VARCHAR(MAX)), 'HomeDrive=\\?????\', 'HomeDrive=\\myserver\home') AS TEXT)
因为原始驱动器路径是动态的(我的 '?????' 在查询中),我不确定如何完成。关于每条路径唯一确定的是:
- 它将是字母驱动器或 UNC
- 路径总是以
\
- 它将与下一个值用空格隔开
但是,由于驱动器路径可以有任意数量的空格,我不确定空格分隔符是否有帮助。
谢谢!