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

Откуда:
Сообщений: 12
Добрый вечер. Можно ли сделать так , что бы id в разных таблицах не повторялся? id выдаётся автоматически. Например если в таблице table1 id = 1 , то не в какой другой такой id не встретиться!
14 май 11, 23:02    [10653274]     Ответить | Цитировать Сообщить модератору
 Re: ID в разных таблицах  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
Можно, но очень интересно для чего такой изврат понадобился?
14 май 11, 23:38    [10653374]     Ответить | Цитировать Сообщить модератору
 Re: ID в разных таблицах  [new]
IvanV.
Member

Откуда:
Сообщений: 12
А можно пример привести?
14 май 11, 23:52    [10653423]     Ответить | Цитировать Сообщить модератору
 Re: ID в разных таблицах  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
IvanV.
А можно пример привести?
Вы весь список требований изложите. А то способов очень много, но любой из них может и не подойти.
15 май 11, 00:04    [10653460]     Ответить | Цитировать Сообщить модератору
 Re: ID в разных таблицах  [new]
IvanV.
Member

Откуда:
Сообщений: 12
Есть 10 таблиц в них identity primary key , необходимо что бы id не повторялись! :)
15 май 11, 00:09    [10653483]     Ответить | Цитировать Сообщить модератору
 Re: ID в разных таблицах  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
IvanV.
Есть 10 таблиц в них identity primary key , необходимо что бы id не повторялись! :)
Для таких требований используется такое решение: при назначении identity нужно выделить для каждой из 10 таблиц свой диапазон значений.
15 май 11, 00:12    [10653495]     Ответить | Цитировать Сообщить модератору
 Re: ID в разных таблицах  [new]
IvanV.
Member

Откуда:
Сообщений: 12
А как это делается?
15 май 11, 00:14    [10653504]     Ответить | Цитировать Сообщить модератору
 Re: ID в разных таблицах  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
IvanV.
А как это делается?
При задании identity указывается 2 параметра: seed и increment

Вот seed и есть начало диапазона.

По умолчанию эти параметры 1, 1

При создании таблицы из интерфейса эти параметры тоже можно указывать.
15 май 11, 00:22    [10653528]     Ответить | Цитировать Сообщить модератору
 Re: ID в разных таблицах  [new]
IvanV.
Member

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

Благодарю.
15 май 11, 00:23    [10653532]     Ответить | Цитировать Сообщить модератору
 Re: ID в разных таблицах  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
IvanV.
Добрый вечер. Можно ли сделать так , что бы id в разных таблицах не повторялся? id выдаётся автоматически. Например если в таблице table1 id = 1 , то не в какой другой такой id не встретиться!
Посмотри в сторону типа поля uniqueidentifier
declare @tb1 table (id uniqueidentifier NOT NULL DEFAULT newid(),
					name1 varchar(100))
insert into @tb1 (name1) values ('name1'),('name2'),('name3')

select * from @tb1

declare @tb2 table (id uniqueidentifier NOT NULL DEFAULT newid(),
					name2 varchar(100))
insert into @tb2 (name2) values ('name1'),('name2'),('name3')

select * from @tb2

declare @tb3 table (id uniqueidentifier NOT NULL DEFAULT newid(),
					name3 varchar(100))
insert into @tb3 (name3) values ('name1'),('name2'),('name3')

select * from @tb3
Конечно немного непривычно, но уникальность автоматически задается.
Конечно можно рассматривать, что предложил alexeyvg.
15 май 11, 09:53    [10653994]     Ответить | Цитировать Сообщить модератору
 Re: ID в разных таблицах  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Let's Google "Миграция первичного ключа". Для реализации оной Вам понадобится одна "родительская сущность".
15 май 11, 11:10    [10654106]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить