我有一张表,其中一个列(orderid)的IDENTITY属性已经设置为true。现在我想要关闭该属性。如何使用ALTER COLUMN命令来实现?类似于这样:
ALTER TABLE MyTable
ALTER Column MyColumn SET IDENTITY OFF
我有一张表,其中一个列(orderid)的IDENTITY属性已经设置为true。现在我想要关闭该属性。如何使用ALTER COLUMN命令来实现?类似于这样:
ALTER TABLE MyTable
ALTER Column MyColumn SET IDENTITY OFF
你需要使用 SET IDENTITY_INSERT 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个步骤来完成这项任务: