54

パフォーマンスのために SQL Server 2005 ストアド プロシージャを少し変更しています。古いストアド プロシージャと新しいストアド プロシージャがまったく同じ結果を返すことをすばやく確認したいと思います (列は同じで、行が同じ)。

SQL Server 2005 でこれを行う簡単な方法はありますか?

4

7 に答える 7

70

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
于 2012-06-13T15:00:00.333 に答える
3
create table #OldProcResults (
    <Blah>
)

create table #NewProcResults (
    <Blih>
)

insert into #OldProcResults
    exec MyOldProc

insert into #NewProcResults
    exec MyNewProc

次に、Jabs の回答を使用して 2 つのテーブルを比較します。

于 2012-06-13T15:06:19.307 に答える
0

プロシージャごとに 1 つずつ、合計 2 つの一時テーブルを作成します。適切なテーブルに行を挿入するプロシージャを実行します。

次に、一方から * を選択し、もう一方から * マイナスを選択し、その逆も同様です。

于 2012-06-13T14:59:41.707 に答える