変数(実際にはいくつかありますが、この目的のために単純化します)を受け入れるストアドプロシージャを記述し、その変数に基づいてフィルタリングするSQLステートメントを作成する必要があります。ただし、ユーザーがその変数を渡すかどうかはオプションです。ユーザーが変数を渡さない場合、フィルターはNull値を返すのではなく、その部分を無視する必要があります。
基本的に、私が持っているのは次のとおりです。
@VariableA varchar(50)
@SQL nvarchar(max)
Select @SQL = 'Select ColumnX from TableY where (('+@VariableA+ ' = somevalue) or (@VariableA is null))'
exec sp_executesql @SQL
したがって、私の問題は、@ SQL文字列がクエリとして実行されるときに、@VariableA変数がスコープ外になることです。実行する動的SQLクエリを作成するだけでなく、ユーザーが渡さない場合は変数のnull値を確認するにはどうすればよいですか?