2016-01-06 4 views
6

IDENTITYがtrueに設定されているカラム(orderid)を持つテーブルがあります。今私はそれをオフに設定したいと思います。 ALTER COLUMNでどうすればいいですか?このようなことは何ですか? ID列がセットされるとIDENTITYをオフに設定するテーブルを変更

ALTER TABLE MyTable 
ALTER Column MyColumn SET IDENTITY OFF 

答えて

6

あなたはにそれを削除することはできませんか、OFFに設定することはできません。

最初にデータを他の列にコピーしてください(はIDがではありません)。したがって、テーブルに新しい列 を追加して、既存のID列の値をそのテーブルにコピーするようになります。その後、古い列(身元が)を削除し、最後に新しい列の名前を古い列の名前に変更します。

6

SET IDENTITY_INSERTをONにする必要があります。 ONに設定すると、明示的に値をID列に渡す必要があります。

なぜアイデンティティをオフにする必要がありますか?いくつかの明示的な値を渡そうとしているかもしれません。

ここでサンプルデモを参照してください。あなたが4でこれを行うことができます

-- 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

は古いもの に新しい列の名前を変更し、古いコラム

  • を削除すると、その列
  • に新しい列
  • データのコピーを作成し

    1. ステップ
  • 関連する問題