这个
有什么不对DECLARE @sql varchar(max) = 'SELECT ' + 'word' + ' FROM #Parameter'+ ' WHERE ' + 'Name' + '= ' + 'word search';
EXEC @sql
原始选择是
SELECT word FROM #Parameter WHERE Name = 'word search'
答案 0 :(得分:1)
您可以尝试转义短语word search
周围的单引号:
DECLARE @sql varchar(max) = "SELECT " + "word" + " FROM #Parameter"+ " WHERE " +
"Name" + "= " + "'word search'";
EXEC @sql
<强>更新强>
出于某种原因,很可能是粗心大意,你用MySQL标记了你的问题。在SQL Server中,您可以通过加倍来转义单引号,因此这应该有效:
DECLARE @sql varchar(max) = 'SELECT ' + 'word' + ' FROM #Parameter'+ ' WHERE ' +
'Name' + '= ' + '''word search''';
EXEC @sql
答案 1 :(得分:0)
基于this comment,我为 SQL Server编写查询
在您添加单引号的情况下,您需要在关键字周围添加三重单引号:
DECLARE @sql VARCHAR(MAX) = 'SELECT ' + 'word' + ' FROM #Parameter' + ' WHERE ' +
'Name' + ' = ' + '''word search''';
--PRINT @sql
EXEC @sql
或者使用连接运算符,您可以在关键字周围使用两个单引号:
DECLARE @sql VARCHAR(MAX) = 'SELECT word FROM #Parameter WHERE Name = ''word search''';
--PRINT @sql
EXEC @sql