次の構文でエラー「'@orderwhere' の近くで、条件が期待されるコンテキストで指定された非ブール型の式」が生成されるのはなぜですか?
use orders
declare @orderwhere varchar(5000)
set @orderwhere = 'order_status.step = 1'
select order_status.order_id
from order_status
where @orderwhere
次の構文でエラー「'@orderwhere' の近くで、条件が期待されるコンテキストで指定された非ブール型の式」が生成されるのはなぜですか?
use orders
declare @orderwhere varchar(5000)
set @orderwhere = 'order_status.step = 1'
select order_status.order_id
from order_status
where @orderwhere
クエリの一部を動的にすることはできません。オール オア ナッシングである必要があります。次に、EXEC()を使用して動的クエリを実行します
exec('select order_status.order_id
from order_status
where ' + @orderwhere)
where句は文字列です。動的 SQL または次のようなものを使用する必要があります。
use orders
declare @orderwhere varchar(5000)
set @orderwhere = '1'
select order_status.order_id
from order_status
where order_status.step = @orderwhere