我有一个SQL表,其中一列名为" FileLink"我需要在表的所有现有记录的服务器名称末尾添加域名。所以它会是这样的:
在: \\服务器\ SharedFolder \检验.pdf
在: \\ ServerName.domain.net \ SharedFolder \检验.pdf
所以我需要添加" .domain.net"到链接。是否有sql语句来执行此操作?
TIA
答案 0 :(得分:3)
如果您只需要修改一个域并且此值是唯一的,则可以使用REPLACE:
update Table
set Column = REPLACE(Column, 'ServerName', 'ServerName.domain.net')
答案 1 :(得分:2)
如果您不想使用替换语句,可以这样做:
Declare
@SrvName as varchar(50)
Set @SrvName = '\\ServerName'
Select
'\\ServerName.domain.net'+Substring(FileLink,Len(@SrvName)+1,Len(FileLink)-Len(@SrvName))
答案 2 :(得分:1)
如果每个记录的servername相同,则可以使用replace语句执行此操作。否则你可能想要使用patindex来找到从位置3开始的'\'的第一次出现,以确定你需要插入额外文本的位置。
答案 3 :(得分:1)
如果要针对旧记录和新记录运行查询,以防止出现任何问题,则应使用
REPLACE(FileLink, '\\ServerName\', '\\ServerName.domain.net\')
给出了:
选择强>
SELECT REPLACE(FileLink, '\\ServerName\', '\\ServerName.domain.net\') AS FileLinkUpdated
FROM MyTable
<强>更新强>
UPDATE MyTable
SET FileLink = REPLACE(FileLink, '\\ServerName\', '\\ServerName.domain.net\')
请注意,这是假设您没有仅包含\\ServerName