![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Alex_D |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.2.2007 Репутация: нет Всего: нет |
В базе данных есть таблица в которой ключевое поле имеет тип int.
Значение первичного ключа должно задаваться двумя способами: 1. Оно может задаваться явно (с этим проблем нет) 2. Генерируется автоматически, при этом в виде пераметров должен передаваться диапазон возможных значений. Можно ли организовать это средствами SQL Server? |
|||
|
||||
Dremlin |
|
|||
![]() Quo vadis? ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 21.9.2006 Где: Киев Репутация: нет Всего: 4 |
Написать хранимую процедуру для генерации ключа по параметрам и вызывать ее перед вставкой.
--------------------
Каждый дурак знает, что до звезд не достать, а умные, не обращая внимания на дураков, пытаются... |
|||
|
||||
Alex_D |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.2.2007 Репутация: нет Всего: нет |
Можно пример. Буду очень благодарен.
|
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 5 Всего: 22 |
Alex_D,
Читай BOL: Identity Dremlin, см. выше. |
|||
|
||||
Alex_D |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.2.2007 Репутация: нет Всего: нет |
Но ведь и свойство и функция Identity устанавливается при создании таблицы.
Каким образом его использовать при добавлении новой записи? |
|||
|
||||
SergeBS |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 5 Всего: 22 |
Alex_D,
Нет.
Ничто не мешает сделать свойство identity у столбца и не париться? Выставив флажок SET IDENTITY_INSERT [database.[owner.]]{table} {ON | OFF} разрешаешь/запрещаешь ручную вставку. До понедельника ![]() |
||||
|
|||||
Alex_D |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.2.2007 Репутация: нет Всего: нет |
Да, но как сделать так, чтобы сгенерированные значения попадали в заданный интервал.
Если быть точнее, то необходимо чтобы сгенерированные значения не попадали в интервал, отведенный для ручного ввода. |
|||
|
||||
kobra |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 5 Всего: 9 |
IDENTITY [ (seed , increment) ]
можно напроимер договорится что положительние числа для ручного ввода, отрицательние IDENTITY. тогда IDENTITY (-1, -1) можно напроимер договорится что четные числа для ручного ввода, нечетные IDENTITY. тогда IDENTITY (1, 2) |
|||
|
||||
Alex_D |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.2.2007 Репутация: нет Всего: нет |
Да, так подходит. У меня первые 10 тысяч зарезервированы для ручного ввода, а остальное для автоматического. Огромное спасибо
|
|||
|
||||
SergeBS |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 5 Всего: 22 |
Alex_D,
Тему закрой - галочку поставь. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS SQL" | |
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS SQL Server | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |