私はPreference
テーブルを持っています。そのテーブルにはSection
列があります。テーブルの各エントリのSection
列には、1 つのスペースで区切られた複数の値が含まれます。これらの値は、オペレーティング システムのパスや設定です。
たとえば、`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 のいずれかになります。
- パスは常にで終わります
\
- 次の値とはスペースで区切ります
ただし、ドライブ パスには任意の数のスペースを含めることができるため、スペース区切りが役立つかどうかはわかりません。
ありがとう!