У меня проблема с одной из моих транзакций. Я поставил его на печать, сколько строк были затронуты использованием @rowcount:проблема @rowcount с транзакцией
create proc Proc_Whole_Months_Work
@ProjectNum int,
@EmpId int,
@StartDate datetime,
@EndDate datetime
as
BEGIN TRANSACTION
declare @CurrentDate datetime
DECLARE @rowcount int
set @CurrentDate = @StartDate
while (@CurrentDate <= @EndDate)
begin
if (datepart(WEEKDAY, @CurrentDate) <=5)--if it is a weekday
begin
insert into WorkHours(ProjectNum,EmpId,WorkDate,BeginTime,EndTime)values (@ProjectNum,@EmpId,@CurrentDate,'09:00:00','17:00:00')
end
set @CurrentDate =DATEADD(dd, 1, @CurrentDate)
end
SET @rowcount = @@ROWCOUNT
--print @rowcount
if(@rowcount = 0)
PRINT 'No rows Updated'
else
print 'Number Of Rows Updated:' + ' ' + str(@rowcount)
COMMIT TRANSACTION
пойти
По какой-то причине, что я, кажется, не понимают, процедура печатает «Нет строк обновлялась», даже если есть строки обновлены! Любая идея, что я делаю неправильно? Большое спасибо!
Большое спасибо за ваш ответ! Но по-прежнему кажется, что обновление строк не было ..: \ (затронуты 1 строка) (затронуты 1 строка (ы)) Нет строк Обновлено – user2693861
1. попробуйте напечатать @rowcount внутри вашей процедуры. 2. Вы уверены, что там вставлены некоторые строки? –