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

Jak zmienić kolumnę programowo bez tożsamości na kolumnę tożsamości?

O ile wiem, musisz utworzyć tabelę tymczasową z polem ID utworzonym jako IDENTITY, a następnie skopiować wszystkie dane z oryginalnej tabeli. Na koniec upuszczasz oryginalną tabelę i zmieniasz nazwę tymczasowej. To jest przykład z tabelą (o nazwie TestTable ), które zawiera tylko jedno pole o nazwie ID (liczba całkowita, nie TOŻSAMOŚĆ):

BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_TestTable
    (
    ID int NOT NULL IDENTITY (1, 1)
    )  ON [PRIMARY]
GO
SET IDENTITY_INSERT dbo.Tmp_TestTable ON
GO
IF EXISTS(SELECT * FROM dbo.TestTable)
     EXEC('INSERT INTO dbo.Tmp_TestTable (ID)
        SELECT ID FROM dbo.TestTable WITH (HOLDLOCK TABLOCKX)')
GO
SET IDENTITY_INSERT dbo.Tmp_TestTable OFF
GO
DROP TABLE dbo.TestTable
GO
EXECUTE sp_rename N'dbo.Tmp_TestTable', N'TestTable', 'OBJECT' 
GO
COMMIT


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyświetl listę kont skojarzonych z profilem poczty bazy danych w SQL Server

  2. kiedy obliczana kolumna zostanie zaktualizowana?

  3. Nie możesz uzyskać dostępu do mojej bazy danych utworzonej w programie Visual Studio?

  4. Jak uzyskać liczbę zduplikowanych wierszy kolumny DISTINCT jako innej kolumny?

  5. Zapytanie ODBC na MS SQL Server zwracające pierwsze 255 znaków tylko w PHP PDO (FreeTDS)