在SQL中向现有字符串添加其他文本?

时间:2015-05-22 14:23:36

标签: sql sql-server hyperlink

我有一个SQL表,其中一列名为" FileLink"我需要在表的所有现有记录的服务器名称末尾添加域名。所以它会是这样的:

在: \\服务器\ SharedFolder \检验.pdf

在: \\ ServerName.domain.net \ SharedFolder \检验.pdf

所以我需要添加" .domain.net"到链接。是否有sql语句来执行此操作?

TIA

4 个答案:

答案 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

的链接