SQL-запрос для идентификационного ключа в таблице - PullRequest
1 голос
/ 21 сентября 2010

У меня есть таблица в SQL Server 2008. Она имеет empId, который является int типа. Это не личность на данный момент. Я хочу написать запрос (чтобы я мог вести учет изменений в БД), чтобы сделать эти столбцы как столбец идентификации. В этой таблице нет данных.

Ответы [ 2 ]

3 голосов
/ 21 сентября 2010

Это можно сделать, но не легко.Согласно этой статье , если вы делаете это через SSMS, а затем генерируете скрипт, который в основном:

  1. Создайте структуру таблицы, аналогичную example1, скажем Tmp_Example1 со столбцом Identity.
  2. Установите IDENTITY_INSERT ON для только что созданной таблицы. Шаг 3: Вставьте все значения из example1 в Tmp_Example1
  3. Установите IDENTITY_INSERT OFF в Tmp_Example ..
  4. Отбросьте пример1 (Что происходит… отбрасываетисходная таблица ???)
  5. Переименовать Tmp_Example1 в Example1.Зафиксировать транзакцию

Если в этой таблице нет данных, как вы говорите, то, вероятно, вам лучше всего сделать это через SSMS (шаги приведены в статье, на которую я ссылаюсь).Есть ли причина, по которой вы хотите сделать это с помощью SQL?

ОБНОВЛЕНИЕ

Я читал статью , которую другой пользователь опубликовал ранее и нашелэто выглядит намного проще, чем мой вышеописанный метод:

ALTER TABLE SOURCE_TB ADD ID_II INT IDENTITY(1,1)
ALTER TABLE SOURCE_TB DROP COLUMN ID
EXEC sp_rename 'SOURCE_TB.ID_II' ,'ID','COLUMN'

Но, опять же, вероятно, имеет больше смысла делать это через SSMS.Полезно знать, хотя ...

1 голос
/ 21 сентября 2010

У вас нет данных, поэтому отсканируйте таблицу как перетащите и создайте заново Измените поле на Employeeid int identity (1,1), не нуль. Затем воссоздайте таблицу. Нет суеты, нет суеты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...