0

ようやくストアド プロシージャに慣れてきたので、最初の手順で少し助けが必要です。

基本的なレイアウトを取得し、2 つの変数を設定して選択するだけで情報を返さない SP を設定しました。

歴史のとおり、2 つのメイン レコード テーブルtblRecordsCurrent (RecordID)と、フラグを持つtblRecordsHistorical (RecordID)両方の親テーブルがあります。tblDataSet (DatasetID)dsCurrent

新しい DataSetID を使用して、毎日 5000 レコードを tblRecordsCurrent にアップロードしています。新しいデータセットをアップロードすると、前日のデータセット (5000 レコード) が tblRecordsHistorical に移動され、tblDataSet テーブルの DSCurrent フラグが False に更新されます。

StoredProcedure に、移動する DataSetID と移動先 (Current/Historical の場合は「C」または「H」) を入力します。まず、DataSetID が存在することを確認する必要があります。次に、関連する tblRecordsCurrent/Historical に DataSetID を持つレコードがあるかどうかを確認します。

1 - DataSetID が存在するかどうかを確認するにはどうすればよいですかSELECT COUNT(*) from tblDataSet where DataSetID=@DataSet?

@DataSetExistCount=SELECT COUNT(*) from tblDataSet where DataSetID=@DataSet
if @DataSetExistCount== then
     @errCount = @errCount + 1
else
   >>> MORE LOGIC <<<
END

編集:

これは私のストアド プロシージャの素晴らしいキック スタートでした。ストアド プロシージャの複雑なネストされたロジックに興味がある場合は、別のエラー トラップ ベースの質問に投稿しました。

SQL Server ストアド プロシージャでのエラー処理

4

1 に答える 1

2

あなたはそれが存在するかどうかを確認するだけです:

If Exists ( select 1 from tblDataSet where DataSetID = @dataSet )
begin
   -- Do your move logic
end
else 
begin
    -- Doesn't exist so do something else
end
于 2012-09-12T14:58:09.777 に答える