次のような SQL クエリ文字列があります。
DECLARE @sql varchar(max)
SET @sql = ' INSERT INTO ' + @tempTable1 +
' SELECT 0 as Type1, 0 as Type2, ' +
'''' + @name + ''' as CompanyName ' +
' FROM #tempTable2 tt2'
たまたま一重引用符が含まれている 2 つの名前 (例: Pete's Corner) を除いて、クエリは正常に実行されます。これらの名前のいずれかがクエリの一部になると、クエリ文字列が壊れます。この replace(@name,'''','') のように一重引用符を置き換えるのが最も簡単だと思いましたが、すでに文字列に含まれているため、残りの部分に影響を与えるため機能しませんステートメント。残念ながら、テーブル自体を変更することはできません。
これらの一重引用符を置換または削除するにはどうすればよいですか?
追加:申し訳ありませんが、 @name が結合によって別のデータベーステーブルから実際に入力されている部分を含めていないため、文字列が作成される前に @name の値を設定するのは難しいと思います。