Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dodawanie tożsamości do istniejącej kolumny

Nie możesz zmienić istniejących kolumn tożsamości.

Masz 2 opcje,

  1. Utwórz nową tabelę z tożsamością i upuść istniejącą tabelę

  2. Utwórz nową kolumnę z tożsamością i upuść istniejącą kolumnę

Podejście 1. (Nowa tabela ) Tutaj możesz zachować istniejące wartości danych w nowo utworzonej kolumnie tożsamości. Zwróć uwagę, że stracisz wszystkie dane, jeśli nie jest spełniony warunek „jeśli nie istnieje”, więc upewnij się, że ustawiłeś również ten warunek!

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'

Podejście 2 (Nowa kolumna ) Nie możesz zachować istniejących wartości danych w nowo utworzonej kolumnie tożsamości. Kolumna tożsamości będzie przechowywać sekwencję liczb.

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'

Więcej informacji można znaleźć w następującym poście na forum Microsoft SQL Server:

Jak zmienić kolumnę na tożsamość(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. Jak używać operatora logicznego EXISTS w SQL Server — samouczek SQL Server / TSQL — część 125

  2. SQL Server 2008 — Jak zwrócić typ tabeli zdefiniowanej przez użytkownika z funkcji o wartościach przechowywanych w tabeli?

  3. Co oznacza podwójne w serwerze sql?

  4. Różnica między sys.parameters, sys.system_parameters i sys.all_parameters w programie SQL Server

  5. Jak zatrzymać/uruchomić kolejkę poczty bazy danych w programie SQL Server (T-SQL)