SQL脚本新手,尝试使用如下所示的define变量更新SQL脚本中的部分字符串,但无法使其工作。该列可以像\\OM-WD08-1\TestDoc\report\rep.pdf
一样,有很多表用不同的列标题来更新。我想声明变量并替换适用的地方。提前谢谢
USE MyServer
-- Declare the variable to be used.
DECLARE @OldPath varchar(30), @NewPath varchar(30)
-- Initialize the variable
SET @OldPath ='\\OM-WD08-1\';
SET @NewPath ='\\AA-PC\';
UPDATE AnatomyConfigs
SET Path = REPLACE(Path, @OldPath, @NewPath)
WHERE Path IS NOT NULL
AND Path LIKE @OldPath
GO
答案 0 :(得分:1)
LIKE
仅执行文字的文字匹配,除非您包含某种形式的通配符(%
或_
)。我会这样做:
USE MyServer
-- Declare the variable to be used.
DECLARE @OldPath varchar(30), @NewPath varchar(30)
-- Initialize the variable
SET @OldPath ='\\OM-WD08-1\';
SET @NewPath ='\\AA-PC\';
UPDATE AnatomyConfigs
SET Path = @NewPath + SUBSTRING(Path,LEN(@OldPath)+1,8000)
WHERE Path LIKE @OldPath + '%'
GO
我更喜欢使用SUBSTRING
而不是REPLACE
,因为它更清晰地反映了#34;我只想替换字符串开头的实例"。现在,考虑到中间没有路径应该包含\\
,在这个特定情况下并不是真的需要这个,但是我想要更一般的答案。
答案 1 :(得分:0)
Declare @varibale_name varhcar(50)
To set Value:
set @variable_name='dgnughg'
update Table_Name set column_name=@variable_name