![]() |
|
Модераторы: Akina |
![]()
|
|
| Codegrammer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 1.4.2008 Репутация: нет Всего: нет |
MS SQL SERVER 2008. База данных Northwind. Работаю с таблицей Customers. Там id - nchar(5). Как можно сгенерить уникальный ключ при вставки новой строки?
|
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
Если не ошибаюсь, то в MS SQL Server для символьных строк работают агрегатные функции min() и max()... Как вариант можно приобщить их (в частности max()) к решению данного вопроса. Т.е. определять ключ, как максимальное значение плюс какая то величина. Правда я не знаю, прокатит ли вот такое 'A' + 1 = 'B', но я думаю, что попробовать стоит.
-------------------- Слава Україні! |
|||
|
||||
| VirusUZ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 9.4.2010 Где: Узбекистан, Навои й обл. Репутация: нет Всего: -2 |
--------------------
Virus |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: нет Всего: 54 |
VirusUZ, хм, а я думал, что @@identity хранит последнее значение autoincrement...
-------------------- Слава Україні! |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: нет Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Несомненно, генерить придётся программно. Но вообще если ключ генерируется программно, то нет никакого смысла делать его не-числовым. В учебной БД он как раз "рожается" и вводится вручную как слегка расширенное ФИО кастомера. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
НЯП, там был особый тип uid, который генерировал случайную текстовую строку.
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
motorway, GUID - 128 байтовая последовательность, которая частенько представляется 38ми символьной строкой, которую, крайне проблематично было бы сохранить в пятисимвольном поле.
Codegrammer, данное поле в учебной базе демонстрирует т.н. "натуральный ключ". В отличии от суррогатных, натуральные ключи несут в себе некую информационную составляющею, имеющую какую-то значимость за пределами контекста базы данных. Потому натуральные ключи не генерируются автоматически в базе. Я бы осмелился предположить что в качестве CustomerID должно использоваться значение из какого то реестра, вроде нашего ЕГРЮЛ. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
![]()
|
| Правила форума "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. |