2013-06-27 7 views
0

Я искал и искал и не могу найти ответ на этот вопрос.Вставить составной инкрементный ключ

Если у меня есть составной ключ в MSSQL и хочу, чтобы она выглядела, как например:

k2 k3 
1 1 
1 9 

2 1 
2 9 
2 3 

3 1 
3 8 

реестров вставляется 1 или более в то время, и для каждого раунда вставок, то k2 одно и то же. K2 также должен быть инкрементальным.

В этом примере я вставил первые 2 регистра в одно и то же время, и поэтому k2 был установлен в 1, потому что ранее не было реестров, и пользователь дал k3.

2-я вставка была для 3-х регистров, а k2 - 2, поскольку она увеличивалась с момента последней вставки.

3-вставка была 2 реестров и продолжается ...

+4

Хорошо, я хочу, чтобы вы забыли все о том, чего хотите. Затем прочитайте этот вопрос и посмотрите, можете ли вы выяснить, что задают. Тем временем все остальные будут молиться за просвещение о k1 ... –

+0

k1 не имеет значения, поэтому я удалил его. Прочтите еще раз, посмотрите, просветил ли он вас. –

+0

Все еще не выровнено. –

ответ

4

поддерживать две таблицы (а и б). Таблица a имеет первичный ключ с автоматическим приращением K1. В таблице b есть первичный ключ с автоматическим приращением К2. Справочная таблица b, содержащая первичный ключ K2 в таблице a как внешний ключ на K2. Для каждой партии вставки, предварительную таблицу b и вставьте значение scope_identity()/output inserted.K1 в качестве ссылки K2.

Это то, что вы ищете?

+0

Это хорошая идея, я думаю, что это так. благодаря –