我有一個表,它有一個列(orderid),其IDENTITY設置爲true。現在我想把它關掉。我怎麼能用ALTER COLUMN來做到這一點?改變表設置IDENTITY關
ALTER TABLE MyTable
ALTER Column MyColumn SET IDENTITY OFF
我有一個表,它有一個列(orderid),其IDENTITY設置爲true。現在我想把它關掉。我怎麼能用ALTER COLUMN來做到這一點?改變表設置IDENTITY關
ALTER TABLE MyTable
ALTER Column MyColumn SET IDENTITY OFF
一旦標識列設爲您不能刪除它,或者你不能將其設置爲OFF。
您可能必須首先將數據複製到其他列(,其沒有標識),以刪除該列。所以這就像將一個新列 添加到您的表中並將現有標識列的值複製到它。然後刪除舊列(,標識爲),最後將新列重命名爲舊列名。
您必須使用SET IDENTITY_INSERT TO ON。如果將其設置爲ON,則應該明確地將值傳遞給ID列。
爲什麼要關閉身份?也許你正試圖傳遞一些明確的價值。
請參考這裏的示例演示。
-- 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個操作步驟,