0

我想写动态tsql,但是系统返回错误'invalid column' 为什么?

DECLARE @WhereClause NVARCHAR(2000) 
DECLARE @SelectStatement NVARCHAR(2000)
DECLARE @FullStatement NVARCHAR(4000) 

set @WhereClause = 'elad' 
SET @SelectStatement = 'SELECT TOP 1 * FROM elad where  '
SET @FullStatement = @SelectStatement +'last_name'+'='+@WhereClause 

EXECUTE sp_executesql @FullStatement  

在此查询中,我希望系统返回姓氏字段等于 elad 的所有行,但系统返回:

消息 207,级别 16,状态 1,第 1 行
无效的列名称“elad”。

4

1 回答 1

1

You need to add quotes in your Where clause

SET @FullStatement = @SelectStatement +'last_name'+'='''+@WhereClause + ''''
于 2013-10-13T20:33:26.983 回答