У меня есть существующая таблица, по которой по какой-то причине дизайнер решил вручную управлять значением первичного ключа, сохраняя последнее использованное значение в отдельной таблице (изменение таблицы для использования Identity сейчас не вариант).
Теперь мне нужно выполнить массовое обновление этой таблицы следующим образом:
DECLARE @NeedFieldID int
SET @NeedFieldID = 62034
INSERT INTO T_L_NeedField (NeedID, NeedFieldID, FieldName, Sequence, DisplayAs, FieldPrompt, DataType, ValidOptions, IsRequiredForSale)
(
SELECT
DISTINCT n.NeedID,
@NeedFieldID + 1,
'DetailedOutcome',
999,
'Detailed Outcome',
'Select appropriate reason for a No Sale outcome',
'T',
'Pricing, Appointment Date / Time Not Available, Will Call Back, Declined',
0
FROM T_L_Need n
INNER JOIN T_L_NeedField nf
ON n.NeedID = nf.NeedID
WHERE (n.Need LIKE 'Schedule%' AND n.Disabled = 0)
)
Очевидно, что @NeedFieldID + 1 'не работает (просто использовать его, чтобы показать, что я хочуделать).Как я могу увеличить @NeedFieldID, когда SQL вставляет значения для каждого отдельного NeedId?Я использую SQL Server 2008.