Good DayВ чем разница между двумя операторами sql?
Все, что мы пытаемся сделать, находится внутри триггера, убедитесь, что пользователь не вставляет две платы, которые имеют «один» в имени. Эти сборы должны обрабатываться индивидуально.
По какой-то причине он выглядит верхней частью sql quit, работающей две недели назад. Чтобы обойти это, я переписал его вторым способом и получил правильные результаты. Я смущен, почему первая часть показалась, чтобы работать последние несколько лет, а теперь нет?
SELECT @AloneRecordCount = count(*)
FROM inserted i
INNER JOIN deleted d on i.id = d.id
WHERE i.StatusID = 32
AND d.StatusID <> 32
AND i.id IN
(SELECT settlementid FROM vwFundingDisbursement fd
WHERE fd.DisbTypeName LIKE '%Alone'
AND fd.PaymentMethodID = 0)
SELECT @AloneRecordCount = count(i.id)
FROM inserted i INNER JOIN
deleted d on i.id = d.id
JOIN vwFundingDisbursement fd on i.id = fd.settlementid
WHERE i.StatusID = 32
AND d.StatusID <> 32
AND fd.DisbTypeName like '%Alone'
AND fd.PaymentMethodID = 0
это на SQL Server 2005
нет никакой ошибки, а верхний оператор будет возвращать только 1 или нулевой
в то время как нижний оператор возвращает фактическое число найдено.
Какой двигатель, и есть ли какие-либо ошибки, пожалуйста? – gbn
Это триггер ON DELETE? – Andomar
Это триггер после обновления. –