Это называется назначением Hi / Lo.
Вы могли бы сделать это, используя триггер INSERT для ваших таблиц, получая идентификатор из этой таблицы и увеличивая его до или после получения своего идентификатора, в зависимости от вашего выбора.
Это обычно используется, когда вам приходится иметь дело с несколькими ядрами базы данных. Автоинкрементный идентификатор в Oracle - это последовательность SEQUENCE, которую вы увеличиваете с помощью SEQUENCE.NEXTVALUE из предельного значения INSERT TRIGGER в вашей таблице данных.
Напротив, в SQL Server есть столбцы IDENTITY, которые автоматически автоинкрементируются и управляются самой DBE.
Для того чтобы ваше программное обеспечение работало на обоих DBE, вам необходимо прийти к какому-то стандарту, тогда наиболее распространенным «стандартом», используемым для этого, является назначение Hi / Lo первичному ключу.
Это один из подходов среди других. В наши дни с такими инструментами отображения ORM, как NHibernate, он предлагается через конфигурацию, поэтому вам нужно меньше заботиться как о приложениях, так и о сторонах базы данных.
РЕДАКТИРОВАТЬ # 1
Поскольку этот вид маневра не может использоваться для глобальной области действия, вам потребуется такая таблица для каждой базы данных или схемы базы данных. Таким образом, каждая схема не зависит от другой. Однако данные в одной схеме не могут быть неявно перемещены в другую с тем же ключом, поскольку, возможно, они будут конфликтовать с уже существующей строкой.
Что касается схемы безопасности, она обращается к той же базе данных, что и другая схема или пользователь, поэтому для конкретной схемы безопасности не должно быть никаких дополнительных таблиц.