我有一个类似这样的SQL查询字符串:
DECLARE @sql varchar(max)
SET @sql = ' INSERT INTO ' + @tempTable1 +
' SELECT 0 as Type1, 0 as Type2, ' +
'''' + @name + ''' as CompanyName ' +
' FROM #tempTable2 tt2'
查询正常运行,但有两个名称包含单引号(例如:Pete's Corner)。当这些名称中的任何一个成为查询的一部分时,它会破坏查询字符串。我认为最简单的方法是像这样替换单引号 replace(@name,'''','') ,但它不起作用,因为我已经在一个字符串中,所以它影响了语句的其余部分。不幸的是,修改表本身不是一个选项。
如何替换或删除这些单引号?
补充说明:很抱歉,我没有包括@name实际上是通过连接从另一个数据库表填充的部分,因此在创建字符串之前设置@name的值可能对我来说很困难。