使用SQL Server进行Active Directory修改

时间:2014-03-28 13:01:16

标签: sql sql-server

我已将我的AD导出为CSV并将其输入SQL,目标是修改某些字段并将其导回AD。

我已经完成了我需要做的每个字段,除了一个,即proxyAddress字段。

我的数据如下:

proxyAddresses
sip:john.smiths@email.com;SMTP:john.smith@email.com
sip:james.jones@email.com;SMTP:james.jones@email.com;notes:james.jones/EMAIL/

等...

我尝试更改sip:值,但因为他们是所有不同的用户名,并且包含了SMTP,我正在努力使用SQL LIKE命令。

我需要数据看起来像这样:

proxyAddresses
sip:john.smiths@newemail.com;SMTP:john.smith@email.com
sip:james.jones@newemail.com;SMTP:james.jones@email.com;notes:james.jones/EMAIL/

更改sip:值,但保留其余值。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我们不知道表定义,也不知道新旧值之间的映射,所以只是为了这样的开头:

declare @e varchar(1000) = 'sip:james.jones@email.com;SMTP:james.jones@email.com;notes:james.jones/EMAIL/'
declare @newEmail varchar(126) = 'james.jones@newemail.com'

select stuff(@e, charindex(':', @e)+1, charindex(';', @e)-charindex(':', @e)-1, @newEmail)