Добрый день всем.
Использовал такую конструкцию
insert.Set(ColumnName, Column.SqlText($"( NEXT VALUE FOR [dbo].[" + SequenceName + "])"));
Чтобы вставлять в инсерте значения из последовательности. Сейчас такая конструкция не работает так как после обновления Column.SqlText() считается устаревшим.
Необходимо вставлять значения именно и вставляю в большом количестве. Триггер на БД не подходит, так как не всегда нужно это делать.
Есть ли альтернативы для применения такой схемы?
Нравится
Добрый день,
В теории тригер можно написать так, чтобы он не запускался для всех записей. Но, можно пойти и другим путём:
Terrasoft.Core.DB.Sequence sequence = new Terrasoft.Core.DB.Sequence(UserConnection, "CountBy1"); int result = sequence.GetNextValue(); Set<int>("SeqResult", result); return true;
Этот код я использовал в тестовой скрипт-таске для проверки получения следующего значения sequence и его увеличения. Действительно, он работает, увеличивает значение и берет его же (нужно заменить CountBy1 на название Вашего sequence). То есть в Вашем коде нужно взять result и прокинуть в аргумент Set метода и будет ровно точно тот же результат, что и при использовании Column.SqlText.