我有一個存在於鏈接服務器上的表,它有一個名爲name的字段,我想在該字段上搜索名爲Macy's的字符串。我正在執行這個動態SQL: -SQL SERVER如何轉義特殊字符
declare @Sql nvarchar(2000)
declare @searchName nvarchar(255)
SET @searchName = N'macy''s'
SET @sql = 'SELECT * from crm_opportunity o where o.NAME LIKE ''% ' + @searchName + '%'' ESCAPE '''''' '
exec (@sql).
換句話說,我試圖逃避單引號。 's'附近出現錯誤消息102,級別15,狀態1,行1語法錯誤。
任何想法和建議!
非常感謝您的答覆,它的工作原理。但是,您是否也可以告訴我如何使用EXEC執行此操作。 – SaiBand
@SaiBand您需要在您的「@ searchName」變量中加倍引用您的引號...... SET @searchName = N'macy'''s'' –
@SaiBand爲了澄清,您必須將引號,因爲它們需要被轉義兩次......在第一次賦值之後,你的變量將包含'macys's''。你需要這個變量有兩個引號,以便在被'EXEC'評估時它會被再次轉義。 –