动态SQL的列错误无效

时间:2013-10-13 20:30:05

标签: sql sql-server

我想编写动态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的所有行, 但系统返回:

  

Msg 207,Level 16,State 1,Line 1
  列名称'elad'无效。'

1 个答案:

答案 0 :(得分:1)

您需要在Where子句

中添加引号
SET @FullStatement = @SelectStatement +'last_name'+'='''+@WhereClause + ''''