我正在尝试执行以下SQL语句:
USE[Northwind]
declare @MainQuery varchar(255),
@WhereClause varchar(255)
Select @WhereClause = 'where CustomerId =ALFKI'
Select @MainQuery ='Select * from Customers '+@WhereClause
execute(@MainQuery)
但是得到错误,
Msg 207,Level 16,State 1,Line 1 列名称无效' ALFKI'。
有什么问题?
答案 0 :(得分:3)
ALFKI被视为列名。您生成的sql将如下所示:
select * from Customers where CustomerID = ALFKI
您想要的是您的代码如下所示:
select * from Customers where CustomerID = 'ALFKI'
要实现此目的,请将where子句生成器更改为:
Select @WhereClause = 'where CustomerId = ''ALFKI'' '
答案 1 :(得分:0)
试试这个
Select @WhereClause = 'where CustomerId =''ALFKI'''