0
動的where句の動作を取得できません。私が使用するクエリ:sp_executesqlでの動的WHERE句の使用
IF NOT EXISTS (SELECT *
FROM sys.tables
WHERE name = 'a')
BEGIN
CREATE TABLE a (a INT);
END;
DECLARE @whereClause NVARCHAR(MAX) = ' 1=1 ';
DECLARE @sql NVARCHAR(MAX) = 'SELECT * FROM a WHERE @whereClause';
EXEC sp_executesql @sql, N'@whereClause NVARCHAR(MAX)', @whereClause;
DROP TABLE a;
その後、追加の質問は次のようになります。sl_executesqlで実行されるデバッグクエリへの可能性はありますか?
1つの方法は、クエリを実行する前に印刷することです。あなたはPRINT @ sqlを実行することでそれを行うことができます – Mukund
SQL文の一部をパラメータとして使用することはできません。 ( 'set @sql = 'select ... where' + @ where')、これはとにかく(私は' 1 = 0; drop table a --'のような節が好きです):) – Arvo
クエリの一部を変数として渡すことはできません。 where句を含むクエリを動的に構築します。 – Pred