Я прочитал пост для вставки строк в таблицу, в которой есть столбец идентификаторов, но он не работает.Вот код, что мне не хватает?Когда я запускаю его, я получаю это сообщение об ошибке:
Cannot insert the value NULL into column 'PP_ID', table
Med.dbo.tblPledgePayments column does not allow nulls. INSERT fails.
The statement has been terminated.
Если я добавлю столбец идентификаторов в оператор вставки (PP_ID), то вместо добавления следующего логического числа шестнадцать (16) в таблице будет пятнадцать(15) строк он добавляет строки, начиная с одного (1).Как я могу преодолеть это?
DECLARE @TxtHowMuch as int,
@TxtHowMany as int,
@TxtPledgeStartDt as datetime,
@TxtFrequency as nvarchar(50), -- Yearly, Monthly, Qurterly
@PaymentNumber as int,
@GID as int,
@cnt INT = 0 --Constant
--These values will be brought in from Access
SET @TxtHowMuch = 100000
SET @TxtHowMany = 10
SET @TxtPledgeStartDt = '2018-01-01'
SET @TxtFrequency = 'Yearly'
SET @PaymentNumber = 1
SET @GID = 200
While @cnt < @TxtHowMany
BEGIN
INSERT INTO [dbo].[tblPledgePayments]
(PP_schedule, GiftID, PP_DueDate, PP_Amount)
Select
@PaymentNumber, @GID,
Case
WHEN @TxtFrequency = 'Yearly' THEN DateAdd(YEAR, @cnt, @TxtPledgeStartDt)
WHEN @TxtFrequency = 'Monthly' THEN DateAdd(MONTH, @cnt, @TxtPledgeStartDt)
WHEN @TxtFrequency = 'Quarterly' THEN DateAdd(QUARTER, @cnt, @TxtPledgeStartDt)
END
,@TxtHowMuch / @TxtHowMany
SET @cnt = @cnt + 1;
SET @PaymentNumber = @PaymentNumber + 1;
END;