Может быть, хорошо, что ваш коллега ушел, потому что код, который вы нам показали, кажется, пахнет.В частности, я не знаю, что должна делать эта строка:
select @postcode 'POSTCODE'
Если вы хотите назначить 'POSTCODE'
на @postcode
, то вы бы использовали это:
select @postcode = 'POSTCODE'
Но первый выбор - это уже создание возможного назначения, поэтому я бы просто удалил эту строку:
SELECT @postcode = max(postcode)
FROM user
WHERE uState = @ustate
IF @@rowcount = 0
BEGIN
SELECT @p_status = 8
ROLLBACK TRAN
PRINT 'Unable to obtain new user #. Copy aborted'
RETURN
END
@@rowcount
должен работать с операторами выбора, вдополнение к операциям DML, поэтому, если этот первый запрос возвращает значение, @@rowcount
не должно быть равным нулю.