SQL Serverデータベースに複数のテーブルがあります。テーブルグループ結果を含むSQL同期カウント
ファイル名、C_srno、Scanなどのフィールドを持つ1つのテーブル[Tatkal_Merge]があります。
Collation_Dataはsrno、ファイル名、dispatchcount、トータルカウント等[srnoが主キーである]のような詳細を有する第2のテーブル[c_srnoセカンダリキーである]
トータルカウントがtatkalmergeテーブル内のレコードの総数です。
両方のテーブルには他の多くのフィールドがありますが、この質問には関係ありません。顧客がWinフォームにバーコードをスキャンし、更新がIスキャン値「Y」と[Tatkal_Merge]更新し、ストアドプロシージャを使用してCollation_Dataディスパッチ・カウントをインクリメント成功するたびに
update [Tatkal_Merge] set [DScan][email protected],[DScanBy][email protected],[DScanTime]=getdate() where Dscan='N' and [wl_barcode][email protected]
if(@@ROWCOUNT=1)
update Collation_Data set Dqty=Dqty+1 where [email protected]_srno
号
何らかの理由により、ディスパッチ数が1人または2人のお客様によって正しくないことがあります。
要件:
1)数の不一致がある理由を案内してください。私の推測は、第1のコマンドと第2のコマンドの間のネットワークの問題です。
2)これを行うのが間違っている場合は、これを行う正しい方法は何ですか?
3)このようなシナリオでテーブルBを更新する方法は正しいですか?
P.S.
現在、私は定期的に相関サブクエリを使用してcollation_Dataを更新しています、
update Collation_Data c
set Dqty = (select count(*)
from [Tatkal].[dbo].[Tatkal_Merge] m
where m.Dscan = 'Y' and m.collation_code = c.collation_code
);
[wl_barcode] = @ WLようにすることはできません、それは1行のみと一致することが保証されてどのように... @wlの価値について、それはあるかもしれない主キー –
ですが、何? – objectNotFound