2016-01-06 14 views

Odpowiedz

6

Gdy kolumna tożsamości jest ustawiony ty nie można usunąć, czy nie można ustawić go w położeniu OFF.

Prawdopodobnie musisz upuścić kolumnę najpierw kopiując dane do innej kolumny (, która nie ma tożsamości). Tak więc byłoby to jak dodanie do tabeli nowej kolumny i skopiowanie do niej wartości istniejącej kolumny tożsamości. Następnie upuść starą kolumnę (o tożsamości) i ostatecznie zmień nazwę nowej kolumny na starą nazwę kolumny.

6

Musisz użyć SET IDENTITY_INSERT TO ON. Jeśli ustawisz go jako WŁĄCZ, powinieneś jawnie przekazać wartości do kolumny ID.

Dlaczego powinieneś wyłączyć Tożsamość? Być może próbujesz przekazać jakieś wyraźne wartości.

Proszę zapoznać się z przykładową prezentacją tutaj.

-- Create tool table. 
CREATE TABLE dbo.Tool 
    (
    ID INT IDENTITY NOT NULL PRIMARY KEY, 
    NAME VARCHAR(40) NOT NULL 
); 

GO 

-- Inserting values into products table. 
INSERT INTO dbo.Tool 
      (NAME) 
VALUES  ('Screwdriver'), 
      ('Hammer'), 
      ('Saw'), 
      ('Shovel'); 

GO 

-- Create a gap in the identity values. 
DELETE dbo.Tool 
WHERE NAME = 'Saw'; 

GO 

SELECT * 
FROM dbo.Tool; 

GO 

-- Try to insert an explicit ID value of 3; 
-- should return a warning. 
INSERT INTO dbo.Tool 
      (ID, 
      NAME) 
VALUES  (3, 
      'Garden shovel'); 

GO 

-- SET IDENTITY_INSERT to ON. 
SET IDENTITY_INSERT dbo.Tool ON; 

GO 

-- Try to insert an explicit ID value of 3. 
INSERT INTO dbo.Tool 
      (ID, 
      NAME) 
VALUES  (3, 
      'Garden shovel'); 

GO 

SELECT * 
FROM dbo.Tool; 

GO 

-- Drop products table. 
DROP TABLE dbo.Tool; 

GO 
4

Można to zrobić w 4 krokach

  1. Dodać nową kolumnę
  2. kopiowania danych do tej kolumny
  3. Usuń stare kolumny
  4. Zmień nazwę nowej kolumny do starego
Powiązane problemy