Я помогаю реализовать базу данных SQL Server 2008, и у меня есть несколько столбцов, которые я хотел бы установить по умолчанию для следующего числа в последовательности, но все же смогу вставлять числа в него вручную по своему усмотрению. В PostgreSQL это делается с типом данных SERIAL и последовательностью. К сожалению, эти вещи не существуют в SQL Server. Вот то, что я знаю, не сработает.
- Столбец идентификации не допускает вставки, если вы не установили IDENTITY_INSERT на. В этом случае он работает как нужно, но в соответствии с MSDN это свойство может быть установлено только для одной таблицы за раз, и я хотел бы сделать это для нескольких таблиц.
- Функция может быть установлена в качестве значения по умолчанию для поля, но, поскольку функция не может устанавливать значения в базе данных, нет способа обновить счетчик после установки текущего значения.
- Хранимая процедура может использоваться для увеличения числа и его возврата, но они не могут быть установлены в качестве значения по умолчанию для столбца.
Обходной путь, который я сейчас создал, состоит в том, чтобы просто создать хранимую процедуру, которая возвращает желаемое значение, и кодировать его в API LINQ, чтобы это происходило автоматически. Это дает некоторый шаблонный код, который я хотел бы удалить.
Возможно ли то, что я хочу, даже в SQL Server?