Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Генерация уникального значения 
V
    Опции темы
Alex_D
Дата 16.2.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.2.2007

Репутация: нет
Всего: нет



В базе данных есть таблица в которой ключевое поле имеет тип int. 
Значение первичного ключа должно задаваться двумя способами:
1. Оно может задаваться явно (с этим проблем нет)
2. Генерируется автоматически, при этом в виде пераметров должен передаваться диапазон возможных значений. 
Можно ли организовать это средствами SQL Server? 
PM MAIL   Вверх
Dremlin
Дата 16.2.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Quo vadis?
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 21.9.2006
Где: Киев

Репутация: нет
Всего: 4



Написать хранимую процедуру для генерации ключа по параметрам и вызывать ее перед вставкой.
--------------------
Каждый дурак знает, что до звезд не достать, а умные, не обращая внимания на дураков, пытаются...
PM MAIL   Вверх
Alex_D
Дата 16.2.2007, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.2.2007

Репутация: нет
Всего: нет



Можно пример. Буду очень благодарен.

PM MAIL   Вверх
SergeBS
Дата 16.2.2007, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 5
Всего: 22



Alex_D,
Читай BOL: Identity

Dremlin
см. выше.
PM MAIL   Вверх
Alex_D
Дата 16.2.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.2.2007

Репутация: нет
Всего: нет



Но ведь и свойство и функция  Identity устанавливается при создании таблицы.  
Каким образом его использовать при добавлении новой записи?
PM MAIL   Вверх
SergeBS
Дата 16.2.2007, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 5
Всего: 22



Alex_D
Цитата

Но ведь и свойство и функция  Identity устанавливается при создании таблицы.  

Нет.
Цитата

IDENTITY (Property) (T-SQL)
Creates an identity column in a table. This property is used with the CREATE TABLE and ALTER TABLE Transact-SQL statements.

Ничто не мешает сделать свойство identity у столбца и не париться?
Выставив флажок 
SET IDENTITY_INSERT [database.[owner.]]{table} {ON | OFF}
разрешаешь/запрещаешь ручную вставку.
До понедельника smile
PM MAIL   Вверх
Alex_D
Дата 17.2.2007, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.2.2007

Репутация: нет
Всего: нет



Да, но как сделать так, чтобы сгенерированные значения попадали в заданный интервал. 
Если быть точнее, то необходимо чтобы сгенерированные значения не попадали в интервал, отведенный для ручного ввода.
PM MAIL   Вверх
kobra
Дата 17.2.2007, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 5
Всего: 9



IDENTITY [ (seed , increment) ]
можно напроимер договорится что положительние числа для ручного ввода, отрицательние IDENTITY. тогда IDENTITY (-1, -1)
можно напроимер договорится что четные числа для ручного ввода, нечетные IDENTITY. тогда IDENTITY (1, 2)




PM MAIL   Вверх
Alex_D
Дата 18.2.2007, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.2.2007

Репутация: нет
Всего: нет



Да, так подходит. У меня первые 10 тысяч зарезервированы для ручного ввода, а остальное для автоматического. Огромное спасибо

PM MAIL   Вверх
SergeBS
Дата 19.2.2007, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 5
Всего: 22



Alex_D
Тему закрой - галочку поставь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0757 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.