我想编写动态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'无效。'
答案 0 :(得分:1)
您需要在Where子句
中添加引号SET @FullStatement = @SelectStatement +'last_name'+'='''+@WhereClause + ''''