アポストロフィは 2 回の区切り文字に耐えなければならないため、もう一度2 倍にする必要があります。試す:
' Cast(Name AS varchar(max)) NOT IN (''Jimmy''''s'')'
たとえば、次のように比較します。
DECLARE @sql NVARCHAR(255) = N'SELECT ''Jimmy' + CHAR(39) + ''';';
EXEC sp_executesql @sql;
メッセージ 105、レベル 15、状態 1、行 1
文字列 'Jimmy';' の後の閉じていない引用符。
メッセージ 102、レベル 15、状態 1、行 1
'Jimmy';' 付近の構文が正しくありません。
この:
DECLARE @sql NVARCHAR(255) = N'SELECT ''Jimmy''s'';';
EXEC sp_executesql @sql;
メッセージ 105、レベル 15、状態 1、行 1
文字列 ';' の後の閉じられていない引用符。
ついに:
DECLARE @sql NVARCHAR(255) = N'SELECT ''Jimmy''''s'';';
EXEC sp_executesql @sql;
結果:
-------
Jimmy's