Как лучше создавать ключевое поле

Mizer

необходимо создавать ключевое поле типа BIGINT. как это лучше делать (с возвратом значения из хранимой процедуры).
13 ответов

Mizer

create table t(id bigint IDENTITY(1,1) PRIMARY KEY,name varchar(255))create procedure dbo.ins @name varchar(255)asinsert t(name) values(@name)select SCOPE_IDENTITY() as id


Mizer

можно прокомментировать пример?


Mizer

я так понял вам нужно ключевое поле с автоинкрементоми вы не знаете как получить значение ключа новой записи при ее добавлении.Первая часть скрипта - создание таблицыВторая - пример хранимки, добавляющей запись.SCOPE_IDENTITY() - возвращает последнее значение IDENTITY, вставленное в текущей процедуре.


Mizer

ключевое поле нужно не с автоинкр а со случайными значениями (положительными)


Mizer

не понял. зачем случайные значения в ключевом поле?


Mizer

ключевое поле нужно не с автоинкр а со случайными значениями (положительными)
Есть функция RAND(), но вот только не понятно зачем такое нужно?


Mizer

не понял. зачем случайные значения в ключевом поле?
А Вы что разве про 6-ю нормальную форму не слышали?


Mizer

не понял. зачем случайные значения в ключевом поле?
записи периодически добавляются и удаляются


Mizer

записи периодически добавляются и удаляются
Да Ви шо? Невже... а я й не знав...


Mizer

А Вы что разве про 6-ю нормальную форму не слышали?
Жжош аффтар!


Mizer

))
code SQL for food


Mizer

))


Mizer

необходимо создавать ключевое поле типа BIGINT. как это лучше делать (с возвратом значения из хранимой процедуры).
Через output переменную.Return переменные могут быть строками и int