我在更换sql查询中的字符时遇到问题。我正在使用vs 2008.我正在尝试将土耳其字符替换为I.
工作正常:
Select FirstName, REPLACE(FirstName,N'İ','I') replaced
from Employee where FirstName = N'İAİL'
用作动态语句时失败。
相同的查询无法在动态语句中替换。
DECLARE @SQL NVARCHAR(4000)
SET @SQL = 'Select FirstName, REPLACE(FirstName,N''İ'',''I'') replaced from Employee where FirstName = N'İAİL'
EXEC (@SQL)
你能让我知道为什么这会在第二种情况下失败吗?
答案 0 :(得分:2)
复制并粘贴到SSMS语法高亮显示您在语句末尾缺少一些撇号:
DECLARE @SQL NVARCHAR(4000)
SET @SQL = 'Select FirstName, REPLACE(FirstName,N''İ'',''I'') replaced from Employee where FirstName = N''İAİL'''
EXEC (@SQL)
具有大量字符串的动态SQL是皇家PITA。