2013-02-11 1 views
0

Я унаследовал базу данных кандидатов на работу и веб-форму, которая имеет столбец «JobID». В кодовом коде они получают ценность от своей CMS, чтобы придумать и сохранить ее как «JobID». Меня попросили не использовать CMS в проекте, над которым я работаю, и запустить «JobID» на 60 000. После первоначального применения идентификатор должен автоинкремент. Используя Itextsharp, они затем захотят разместить этот JobID в PDF, который отправляется в штатное расписание.Как создать значение, основанное на последнем значении в базе данных, а затем увеличить это значение на один

Я знаю, как поместить штамп документа в PDF с помощью Itext, я также создал базу данных. Я зациклился на том, как запустить JobID на уровне 60 000, а затем увеличивать его. Должен ли я изменить sqldb, чтобы автоинкремент начинался с 60 000, затем, чтобы получить номер и отпечатать его в документе? Если да, то как начать автоинкрементацию?

+0

вы вынуждены ли использовать существующую таблицу SQL? – JoshVarty

+0

Я могу создать новый. Я знаю, как переносить данные, если мне нужно – Skullomania

ответ

0

DBCC CHECKIDENT может возвращать (возвращать) значение идентификатора таблицы. Например, у YourTable есть 25000 строк с 25000 как последний идентификатор. Если мы хотим, чтобы следующая запись имела идентификатор 60000, нам нужно запустить следующий T SQL-скрипт в Query Analyzer.

DBCC CHECKIDENT (yourtable, переустановку, 59999)

+0

ok, поэтому в моей базе данных у меня есть идентификатор «который является основным ключом, который автоматически увеличивается с 1 и« JobID », который мне нужно начинать с 60 000. Как SQL знает, чтобы получить «JobID», а не «ID»? – Skullomania

+0

Невозможно разместить два столбца идентификации в одной таблице. Если есть возможность сделать столбец идентификатора идентификатором GUID, тогда SQL автоматически перенастроит ваш JobID. В противном случае вам придется искать другие параметры для увеличения вручную. – MSRS

+0

Спасибо, я просто делал небольшое исследование и нашел тот же ответ. Я также буду ссылаться на этот ответ, когда это снова придет (и я уверен, что это будет). Спасибо за вашу помощь. Похоже, мне нужно найти обходное решение – Skullomania

0

Посмотрите на эту статью от Microsoft: DBCC CHECKIDENT (Transact-SQL)

Вы можете позвонить DBCC CHECKIDENT изменить текущее семя тождественное на вашем столе (то есть «повторно семя "таблицы). Просто убедитесь, что новое семя уже не используется (если вы устанавливаете более высокое значение, которое должно быть в порядке, до тех пор, как ваш тип данных поддерживает диапазон

Используйте это следующим образом:.

DBCC CHECKIDENT('TableName', RESEED, 59999) 

Это позволит установить текущее семя тождественного к 59999, что означает следующую запись (если вы используете приращение 1) будет иметь значение идентичности 60000.

+0

, так как он знает разницу между столбцом идентификатора и столбцом идентификатора задания .... Я понимаю, что я могу обновить таблицу, и как ваше высказывание должно пойти по этому поводу. То, что я не понимаю, - это указать, какой столбец будет обновляться. – Skullomania

+0

Также, если идентификатор является первичным ключом и его автоматическое увеличение в качестве идентификатора, как это возможно, для автоматического увеличения «jobid»? – Skullomania

+0

У вас может быть только один столбец идентификатора таблицы; есть ли отдельная таблица заданий, которую вы можете заполнить, а затем используйте @@ Identity после вставки в таблицу заданий для вставки в эту таблицу? –

Смежные вопросы