パフォーマンスのために SQL Server 2005 ストアド プロシージャを少し変更しています。古いストアド プロシージャと新しいストアド プロシージャがまったく同じ結果を返すことをすばやく確認したいと思います (列は同じで、行が同じ)。
SQL Server 2005 でこれを行う簡単な方法はありますか?
パフォーマンスのために SQL Server 2005 ストアド プロシージャを少し変更しています。古いストアド プロシージャと新しいストアド プロシージャがまったく同じ結果を返すことをすばやく確認したいと思います (列は同じで、行が同じ)。
SQL Server 2005 でこれを行う簡単な方法はありますか?
except 構文を使用して、2 つのクエリを一致させることができます。
select * from (select * from query1) as query1
except
select * from (select * from query2) as query2
編集:
次に、クエリを逆にして、クエリ 2 をドライバーとして違いを見つけます。
select * from (select * from query2) as query2
except
select * from (select * from query1) as query1
create table #OldProcResults (
<Blah>
)
create table #NewProcResults (
<Blih>
)
insert into #OldProcResults
exec MyOldProc
insert into #NewProcResults
exec MyNewProc
次に、Jabs の回答を使用して 2 つのテーブルを比較します。
プロシージャごとに 1 つずつ、合計 2 つの一時テーブルを作成します。適切なテーブルに行を挿入するプロシージャを実行します。
次に、一方から * を選択し、もう一方から * マイナスを選択し、その逆も同様です。