Итак, вот моя ситуация. У меня есть данные, расположенные в базе данных ESRI SDE с версией SQL Server 2008 R2, для которой я хочу автоматически установить уникальный идентификатор. Я нашел сценарий, который хорошо работает в одной записи (он работает также для нескольких записей), который вытащит максимальный идентификатор из таблиц и добавит к нему один номер для вставки.SDE Auto ID on Вставить несколько записей
Проблема, с которой я столкнулся, связана с тем, как ESRI работает для вставки записей. Когда вы создаете данные в своем картографическом программном обеспечении (ArcMap) каждый раз, когда вы нажимаете «Сохранить», он действует как вставка в таблицу. Поэтому, если вам удастся сохранить сохранение после одной записи, а максимальный ID - 27, идентификатор новой записи/данных будет 28. Повторите это дело, но на этот раз вы создали две функции перед удалением save, это вставляет обе записи в таблицу в то же время, и каждая запись получает идентификатор 28 вместо 28 и 29 соответственно.
Все это, как я уже говорил, наклеил код, который я использую ниже, который работает как с исходным набором данных, так и с дельта-таблицей, созданной с его версией, но мне нужна помощь в выяснении того, как использовать максимальный ID из текущий набор данных для заполнения следующего идентификатора записи для каждой введенной записи без дублирования его на вставке с несколькими записями. Этот код ориентирован на идентификатор участка для границы участка, который во многих случаях мне может понадобиться разделить посылку, которая приведет к двум функциям, требующим уникальный идентификатор. Любые советы приветствуются и оцениваются
CREATE TRIGGER [dbo].[PARCEL_AUTO_ID]
ON [dbo].[a405]
FOR INSERT, UPDATE
AS
BEGIN
DECLARE @Max_Value int
SET @Max_Value = (SELECT MAX(PARCEL_ID) FROM [dbo].[TOWN_PARCELS])+1
UPDATE [dbo].[a405]
set PARCEL_ID = @Max_Value
WHERE PARCEL_ID IS NULL
UPDATE [dbo].[TOWN_BUILDING_FOOTPRINTS]
set PARCEL_ID = @Max_Value
WHERE PARCEL_ID IS NULL
END
Спасибо jpw :) Я просто работал над его редактированием, чтобы правильно показывать. Очень благодарен за то, что я все еще правильно работаю над этим сайтом. –
Если вы хотите отформатировать блоки кода, отметьте его и нажмите ctrl + k – jpw