Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Добавяне на идентичност към съществуваща колона

Не можете да променяте съществуващите колони за идентичност.

Имате 2 опции,

  1. Създайте нова таблица с идентичност и пуснете съществуващата таблица

  2. Създайте нова колона с идентичност и пуснете съществуващата колона

Подход 1. (Нова таблица ) Тук можете да запазите съществуващите стойности на данни в новосъздадената колона за идентичност. Имайте предвид, че ще загубите всички данни, ако „ако не съществува“ не е изпълнено, така че се уверете, че сте поставили и условието в отпадането!

CREATE TABLE dbo.Tmp_Names
    (
      Id int NOT NULL
             IDENTITY(1, 1),
      Name varchar(50) NULL
    )
ON  [PRIMARY]
go

SET IDENTITY_INSERT dbo.Tmp_Names ON
go

IF EXISTS ( SELECT  *
            FROM    dbo.Names ) 
    INSERT  INTO dbo.Tmp_Names ( Id, Name )
            SELECT  Id,
                    Name
            FROM    dbo.Names TABLOCKX
go

SET IDENTITY_INSERT dbo.Tmp_Names OFF
go

DROP TABLE dbo.Names
go

Exec sp_rename 'Tmp_Names', 'Names'

Подход 2 (Нова колона ) Не можете да запазите съществуващите стойности на данни в новосъздадената колона за самоличност, колоната за самоличност ще съдържа последователността от числа.

Alter Table Names
Add Id_new Int Identity(1, 1)
Go

Alter Table Names Drop Column ID
Go

Exec sp_rename 'Names.Id_new', 'ID', 'Column'

Вижте следната публикация във форума на Microsoft SQL Server за повече подробности:

Как да промените колоната на identity(1,1)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте пощенски акаунт в база данни в SQL Server (T-SQL)

  2. Как да промените цвета и шрифтовете в SQL Server Management Studio (SSMS) - SQL Server / TSQL урок, част 12

  3. Преименувайте първичен ключ в SQL Server (T-SQL)

  4. Прости функции на SQL Server за решаване на проблеми от реалния свят

  5. Как TRY_CONVERT() работи в SQL Server