我想执行两列串联的查询,所以我做到了:

Select
    Id, PtName + ' ('+Investigation+')' as PtName, Y, M, D, PtCode
From
    DiagMain

但是,当我尝试参数化此查询时,它不起作用。

像这样:
declare @Query nvarchar(MAX)

set @Query = 'Select Id, PtName + ''( +''Investigation''+ )'' as PtName, Y, M, D, Sex, PtCode FROM DiagMain'
Exec(@Query)

我在这里做错了什么?

最佳答案

您的单引号放错了位置,应放在方括号()中:

set @Query = 'Select Id, PtName + ''('' +Investigation+ '')'' as PtName, Y, M, D, Sex, PtCode FROM DiagMain'

您可以使用print命令来调试它:
print @Query

关于sql - 如何在SQL Server中使用特殊字符对查询进行参数化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45729886/

10-12 16:33