Функция в SQL, которая даст мне уникальный int? - PullRequest
1 голос
/ 20 октября 2019

Я пытаюсь ввести строку в одну из моих баз данных, но я хочу убедиться, что первичный ключ, который я даю, является уникальным. Мой первичный ключ - это int. Я попытался использовать newid(), но это не возвращает мне int. Если есть способ, которым я могу заставить newid() вернуть только int, или если другая функция, которая выдаст мне уникальный int, я бы использовал его.

Ответы [ 3 ]

3 голосов
/ 20 октября 2019

Вы можете изменить определение своего столбца на int IDENTITY(1,1) PRIMARY KEY, затем не указывать значение при вставке строки, и идентификатор будет автоматически увеличиваться.

См. https://www.w3schools.com/sql/sql_autoincrement.asp длябольше информации.

2 голосов
/ 20 октября 2019

Будьте осторожны со случайным первичным ключом, особенно если это тоже кластерный индекс. Это может привести к выделению файловой системы IO. Вместо этого используйте автоматическое увеличение идентификатора.

0 голосов
/ 21 октября 2019

Один объект, который дает уникальные целые числа, представляет собой последовательности .

Сначала необходимо создать последовательность:

CREATE SEQUENCE MyNewID START WITH 1 INCREMENT BY 1;  

И затем вы можете получить свой новый идентификаторкаждый раз вызывая СЛЕДУЮЩЕЕ ЗНАЧЕНИЕ:

SET @MyNewID = NEXT VALUE FOR MyNewID;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...