我有一张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)
因为原始驱动器路径是动态的(我的'?????'在查询中),我不知道如何完成。关于每条路径唯一确定的事情是:
\
但是,因为驱动器路径可以有任意数量的空格,所以我不确定空间分隔符是否有用。
谢谢!
答案 0 :(得分:0)
我认为问题的根源在于存储这些设置的方式。关系数据库将不同的数据与列分开,因此每个设置都应该:
这些信息是如何在数据库中结束的?更重要的是,可以将之前分开插入Section
吗?
您还可以查看此split function以分隔值。