2016-03-02 5 views
2

У меня есть база данных SQL Servier, где хранятся расписания для нескольких компаний в таблице, называемой tblSchedules.SQL Server Identity Seed

Первый ключ для этой таблицы: ScheduleRatesID и auto increments.

Есть ли способ получить от 700000 для компании A и 800000 для компании B?

+0

такой же сервер, такая же база данных? –

+0

Почему? ПК не заботится о том, какова его ценность. Если вам нужно что-то отличить компанию. Почему tblSchedules не включает «CompanyId»? – JBond

+1

НЕ храните несколько фрагментов информации в одном столбце. Это нарушает 1NF и приведет вас к невыразимому количеству мучений. Что произойдет с вашим номером, когда вы добавите 1 миллионную строку для CompanyA? Если вы хотите использовать одну таблицу, как это, вы должны использовать два столбца. Один для личности и один для компании. –

ответ

-1

№ удостоверения личности не работает таким образом.

Сядьте и напишите свой собственный механизм - это не особенно сложно.

1

Вы можете разместить их в двух разных таблицах, а затем использовать представление, чтобы объединить их вместе ... Боюсь, это ваш единственный вариант.

0

Мое предложение состоит в том, чтобы удалить автоматический прирост в этой таблице и создать триггер для проверки на companyid, и на основе companyid вы должны рассчитать и вставить уникальный ключ-ключ между двумя разными диапазонами, которые вы указали.

+0

Это не очень хорошая идея, если вы рассмотрите вопрос о параллелизме, если у вас нет механизма, гарантирующего уникальность каждого нового значения ... oh wait identity уже обрабатывает это с помощью параллелизма. В любое время, когда вы катитесь самостоятельно, в какой-то момент ему суждено столкнуться с проблемой параллелизма. –

Смежные вопросы