我想写入动态tsql,但系统返回错误'无效列'为什么?无效列错误与动态SQL
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'+'='[email protected]
EXECUTE sp_executesql @FullStatement
在此查询我希望系统返回所有的行,去年name字段等于ELAD, 但系统返回:
消息207,级别16,状态1,行
列名'elad'无效。'
你的SQL语句的结果TOP 1 * FROM ELAD WHERE姓氏= elad'因而'WHERE'条款试图比较' last_name“列添加到”elad“列 - 这当然不存在。您需要将字符串文字放入**单引号!** .... –
当您遇到动态查询问题时,请编写正确的* static *版本,更改构建动态查询的脚本以便它**打印**查询,而不是执行它。查看打印结果并与正确的静态版本进行比较。如果你不能解决这个问题,*然后*询问它,告诉我们查询*应该*看起来像什么(不要让我们猜测!)。 –