Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Получить id новой записи  [new]
FatherSql
Member

Откуда:
Сообщений: 3812
для вставки нужно сформировать id записи. Identity я так понимаю чтобы вставить нужно пересоздавать таблицу. Можно автоматически или нужно получить количество строк в таблице и прибавить что-то?
30 авг 13, 15:27    [14776723]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
FatherSql
для вставки нужно сформировать id записи. Identity я так понимаю чтобы вставить нужно пересоздавать таблицу. Можно автоматически или нужно получить количество строк в таблице и прибавить что-то?
Нет, таблицу пересоздавать не надо.
Просто добавить колонку со свойством IDENTITY
30 авг 13, 15:35    [14776780]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
FatherSql
Member

Откуда:
Сообщений: 3812
iap
FatherSql
для вставки нужно сформировать id записи. Identity я так понимаю чтобы вставить нужно пересоздавать таблицу. Можно автоматически или нужно получить количество строк в таблице и прибавить что-то?
Нет, таблицу пересоздавать не надо.
Просто добавить колонку со свойством IDENTITY

на существующую надо
30 авг 13, 15:40    [14776806]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
Гость333
Member

Откуда:
Сообщений: 3683
FatherSql,

Используйте SEQUENCE.
30 авг 13, 15:49    [14776864]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
FatherSql,

есть слишком много нюансов, о которых Вы не говорите.
Так что посоветовать что-то конструктивное очень затруднительно.
30 авг 13, 15:55    [14776907]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
saycale
Member

Откуда: Москва->Сидней
Сообщений: 32
Гость333
FatherSql,

Используйте SEQUENCE.
SEQUENCE появился в MS SQL 2012 версии. Версия используемого сервера не была оговорена.
30 авг 13, 16:16    [14777013]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
Гость333
Member

Откуда:
Сообщений: 3683
saycale
Гость333
FatherSql,

Используйте SEQUENCE.
SEQUENCE появился в MS SQL 2012 версии. Версия используемого сервера не была оговорена.

Раз не оговорена (не выполнены рекомендации по оформлению сообщений), то будем считать, что используется самая свежая версия.
30 авг 13, 16:17    [14777020]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
MS SQL 2012
Guest
saycale
Гость333
FatherSql,

Используйте SEQUENCE.
SEQUENCE появился в MS SQL 2012 версии. Версия используемого сервера не была оговорена.

это проблемы ТС-а
30 авг 13, 16:17    [14777022]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
FatherSql
Member

Откуда:
Сообщений: 3812
уже проявил смекалку и стал тупо max выбирать
30 авг 13, 16:29    [14777074]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
FatherSql
на существующую надо
Не надо
create table #t (i int not null);

insert into #t values (1), (2), (3);

alter table #t add j int not null identity;

select * from #t;

drop table #t;

FatherSql
уже проявил смекалку и стал тупо max выбирать
А теперь проявите воображение и представьте, что будет в конкурентной среде.
30 авг 13, 16:32    [14777087]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
FatherSql
Member

Откуда:
Сообщений: 3812
invm
FatherSql
на существующую надо
Не надо
create table #t (i int not null);

insert into #t values (1), (2), (3);

alter table #t add j int not null identity;

select * from #t;

drop table #t;

FatherSql
уже проявил смекалку и стал тупо max выбирать
А теперь проявите воображение и представьте, что будет в конкурентной среде.

делается через хранимку + транзакции + ограничение unique все будет ок
30 авг 13, 16:44    [14777165]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
FatherSql,

структуру таблицы приведите
30 авг 13, 16:47    [14777172]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
XenoX
Member

Откуда: 0x1F0438044204350440042100
Сообщений: 1980
INSERT ...
SELECT @@IDENTITY


DECLARE @ID UNIQUEIDENTIFIER
SET @ID = NEWID()
INSERT INTO ....
30 авг 13, 17:20    [14777335]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
sql2012
Member

Откуда: РФ
Сообщений: 765
XenoX
INSERT ...
SELECT @@IDENTITY


[/src]


А может SCOPE_IDENTITY?
30 авг 13, 22:33    [14778452]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
Crimean
Member

Откуда:
Сообщений: 13148
sql2012
А может SCOPE_IDENTITY


@@identity несложно эмулируется. а вот scope дохнет при наличии инстедного триггера
2 сен 13, 10:28    [14782782]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
SHKoder
Member

Откуда: Moscow city
Сообщений: 616
Crimean
sql2012
А может SCOPE_IDENTITY


@@identity несложно эмулируется. а вот scope дохнет при наличии инстедного триггера



зато при аудите тригерами в другие таблицы этот самый @@IDENTITY вернет чушь!
2 сен 13, 13:45    [14784100]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
XenoX
Member

Откуда: 0x1F0438044204350440042100
Сообщений: 1980
sql2012
XenoX
INSERT ...
SELECT @@IDENTITY


[/src]


А может SCOPE_IDENTITY?


Это вы с ТС обсуждайте, что ему лучше подойдет.
2 сен 13, 17:16    [14785644]     Ответить | Цитировать Сообщить модератору
 Re: Получить id новой записи  [new]
Crimean
Member

Откуда:
Сообщений: 13148
2 SHKoder

да ладно. примеров как вернуть нужное значение - мульен.
2 сен 13, 17:19    [14785668]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить