IDENTITYがtrueに設定されているカラム(orderid)を持つテーブルがあります。今私はそれをオフに設定したいと思います。 ALTER COLUMNでどうすればいいですか?このようなことは何ですか? ID列がセットされるとIDENTITYをオフに設定するテーブルを変更
ALTER TABLE MyTable
ALTER Column MyColumn SET IDENTITY OFF
IDENTITYがtrueに設定されているカラム(orderid)を持つテーブルがあります。今私はそれをオフに設定したいと思います。 ALTER COLUMNでどうすればいいですか?このようなことは何ですか? ID列がセットされるとIDENTITYをオフに設定するテーブルを変更
ALTER TABLE MyTable
ALTER Column MyColumn SET IDENTITY OFF
あなたはにそれを削除することはできませんか、OFFに設定することはできません。
最初にデータを他の列にコピーしてください(はIDがではありません)。したがって、テーブルに新しい列 を追加して、既存のID列の値をそのテーブルにコピーするようになります。その後、古い列(身元が)を削除し、最後に新しい列の名前を古い列の名前に変更します。
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
は古いもの に新しい列の名前を変更し、古いコラム