У меня есть уникальный уникальный идентификатор столбца nchar (10). Я планирую сгенерировать в нем числовой идентификатор. Инкрементальный порядок в порядке, но не нужен. Как сделать оптимальный генератор по этой причине? Должен ли я использовать хранимую процедуру? Может быть, MS SQL-сервер имеет какие-то функции по этой причине?Создать уникальное значение в MS SQL
ответ
DECLARE PkStudentid, как INT
CREATE TABLE Student
(
Studentid int IDENTITY (1, 1) NOT NULL PRIMARY KEY,
Firstname nvarchar (200) NULL,
Lastname nvarchar (200),
Email nvarchar (100) NULL
)
insert into Student (Firstname,Lastname,Email)
Values('Vivek', 'Johari', ‘[email protected]');
SET @PkStudentid = SCOPE_IDENTITY();
print @PkStudentid
Это вставит Studentid как 1 и следующий вход 2 и приращение порядка.
В SQL Server необходимо использовать IDENTITY property.
Отредактировано: используйте SCOPE_IDENTITY в SQL Server, чтобы получить последние вставленные Studentid.
ID int IDENTITY (1, 1) NOT NULL PRIMARY KEY
Используйте IDENTITY свойство в MS SQL вместе с PRIMARY KEY для уникальности.
Identity
столбцы могут использоваться для генерации значений ключа. Идентификационное свойство на столбце гарантирует следующее:
- Каждое новое значение создается на основе текущего семени & приращения.
- Каждое новое значение для конкретной транзакции отличается от других параллельных транзакций в таблице.
- (1,1) - Начальное значение и значение Приращения, которое вы можете получить по своему желанию.
Для столбца первичного ключа вы должны использовать колонку INT с вставкой IDENTITY.
Альтернативное решение:
Тем не менее, если вы не хотите использовать тип данных INT, то альтернативное решение создать столбец со значением по умолчанию LEFT(NEWID(), 10)
с UNIQUE/PRIMARY KEY на нем. Потому что функция NEWID()
генерирует разные случайные строки каждый раз.
Для примера:
SELECT LEFT(REPLACE(NEWID(),'-',''),(10))
Выше запроса даст другую случайную строку.
Проверить SQL FIDDLE DEMO:
ВЫВОД
| ID | NAME |
|------------|------|
| 482E5D4850 | pqr |
| 70369ED157 | abc |
| 768CC98442 | xyz |
- 1. Найти уникальное значение в столбце базы данных MS SQL
- 2. Как создать уникальное значение ключа?
- 3. Как создать значение, уникальное из значений другой таблицы в SQL?
- 4. Как создать уникальное возрастающее целочисленное значение в SQL Server?
- 5. Выбор столбца в уникальное значение SQL Server
- 6. SQL Server генерирует уникальное значение
- 7. SQL Access - подсчитывать уникальное значение
- 8. Добавьте следующее уникальное значение в столбец SQL
- 9. SQL Выберите уникальное значение в столбце
- 10. Создать FREETEXTTABLE в MS SQL
- 11. SQL Server 2005 Как создать уникальное ограничение?
- 12. Не удалось создать случайный уникальное значение «значение» в 128 попыток
- 13. Может создать уникальное ограничение в сервере ms sql. Получить ошибку в поле выражения
- 14. Mongodb уникальное значение
- 15. Уникальное значение в поле для конкретного поля в sql
- 16. Как получить уникальное значение из SQL
- 17. Уникальное значение в excel
- 18. Уникальное значение сеанса
- 19. Уникальное значение одного столбца
- 20. Selenium: получите уникальное значение?
- 21. MS sql. Не вставленное значение
- 22. ms Значение столбца обновления SQL
- 23. MS SQL индекс обновления значение
- 24. Как создать триггер в MS SQL 2005
- 25. Как создать уникальное ограничение
- 26. MS Sql извлекает значение дня в дате
- 27. значение XML узла Concat в MS SQL
- 28. MS Access, значение ComboBox в SQL-заявлении
- 29. Laravel Validator уникальное значение
- 30. Perl: уникальное значение Grep
Вы могли бы сделать его столбец IDENTITY для последовательных чисел. –
Почему вы используете nchar (10), вы должны использовать INT с свойствами PRIMARY KEY и IDENTITY в том же столбце. –
Зачем использовать nchar для числового идентификатора? Это похоже на «Хорошо, позвольте мне попробовать самое худшее и самое медленное и наиболее проблематичное решение, потому что я действительно хочу выглядеть так, как будто я никогда не читал о типах данных». – TomTom