SP_EXECUTESQL の使用を妨げているものは何ですか? これはディルバートのストリップですか?
とにかく、その特定のクエリで出力パラメーターを使用した場合、収入が 50,000 を超えるすべての従業員から 1 つの (ランダムな) 値が返される可能性が高くなります。動的 SQL ステートメントの呼び出し元に結果全体を返す方法を示す例を次に示します。
ここで重要なのはINSERT..EXEC です。
create table dbo.employees (
name varchar(10),
income int);
insert employees values
('john', 10000),
('joe' , 20000),
('joey', 40000),
('bob' , 70000),
('tim' , 100000);
declare @SQL nvarchar(max) =
'SELECT name FROM dbo.employees WHERE income > 50000';
declare @names table (name varchar(20));
insert @names
EXEC (@SQL);
select * from @names;