Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ADO.NET - Проблема с автоинкрементным столбцом

552
04 декабря 2007 года
Ivanhoe
373 / / 30.04.2006
Такая ситуация. Есть таблица с тремя столбцами. Первый является первичным ключом и автоинкрементным значением. Во время выполнения программы нужно создать новую запись, такую, что значение третьего столбца равно в ней первому (тому, который автоинкрементный). Перепробованы довольно извращенские методы, вроде добавления строки в грид, синхронизация с БД (первый столбец получит свое значение) и потом установка значения третьего столбца по первому. Это худо-бедно работает до тех пор, пока не нарушается целостность (к примеру, не создается запись с повторяющимся вторым столбцом - как раз уникальным).

Не подскажете более правильного метода? В принципе не только для автоинкрементных столбцов, но и для обычных. Спасибо.
5
05 декабря 2007 года
hardcase
4.5K / / 09.08.2005
А может написать специальную хранимую процедуру на MsSql, сперва создавая запись, а потом обновляя ее с использованием известного IDшника (@@IDENTITY - последний сгенеренный ID):

Код:
CREATE PROCEDURE dbo.InsertNewRow

AS
    INSERT INTO MyTable VALUES (
    )
   
    DECLARE @id AS int
    SET @id = @@IDENTITY
   
    UPDATE MyTable WHERE ID = @id
    SET ThirdField = @id
   
    // возвращаем новую строку
    SEELCT * FROM MyTable WHERE ID = @id
   
    RETURN
552
05 декабря 2007 года
Ivanhoe
373 / / 30.04.2006
Ну, как вариант. Спасибо, попробую.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог