У меня есть несколько таблиц в моей базе данных SQL Server.Счетчик синхронизации SQL с результатом группы таблицы
У меня есть одна таблица [Tatkal_Merge], которая имеет такие поля, как filename, C_srno, Scan и т. Д. [C_srno является вторичным ключом]
Вторая таблица Collation_Data имеет детали, как srno, имя файла, dispatchcount, TotalCount и т.д. [srno является первичным ключом]
TotalCount представляет собой общее количество записей в таблице tatkalmerge.
Есть много других полей в обеих таблицах, но не относится к этому вопросу.
Всякий раз, когда клиент сканирует штрих-код в Winform, и обновление успешно ли обновить [Tatkal_Merge] со значением сканирования «Y» и увеличивать количество отправки 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) Пожалуйста, руководство почему существует расхождение в счете. Мое предположение - проблема сети между первой и второй командой.
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 ... как это гарантированно соответствует только одной строке? – objectNotFound