|
Тема |
Black belt SQL ( само за майстори ) |
|
Автор |
VBProgrammer (GrandMaster) |
|
Публикувано | 10.06.03 22:10 |
|
|
Значи ситуациата е следната :
Трябва да се реализира опашка с таблица.
По-долу има пример за по-нагледна илюстрация.
Това си върви перфектно на 1 комп с 1 клиент.
НО - когато го настъпих от 24 процеса на 4 различни комп. почна да вади deadlock error. Пробвах всекви комбинации от ISOLATION LEVEL & LOCKs.
Обърнах Google-a тц накрая смених кода да ползва MSMQ
напр.
CREATE TABLE MyQItem
QID int identity(1,1),
QStatus varchar(10),
QData varchar (3000)
и една процедура да ги маркира.
REATE PROCEDURE GetQItem
AS
declare @QID int
select @QID = MAX(QID) FROM MyQItem WHERE QStatus = 'SH' -- sheduled
UPDATE MyQItem
SET QStatus = 'IP' -- in process
WHERE @QID = QID
|
| |
|
|
|