我想更改数据库中IDENTITY列的增量值,我有以下限制:
删除表并使用更改的增量值重新创建表将是解决方案。我不知道语法。
您能否建议语法或其他最佳解决方案?
提前致谢!
答案 0 :(得分:3)
如果我理解你正确地基于你对我的评论的回复,你在临时表中备份了orig表的数据,然后你删除了orig表并且你想重新创建一个orig表。
如果是这种情况,则需要IDENTITY_INSERT
设置ON
和OFF
,因为该表的标识是唯一的。
语法为:
SET IDENTITY_INSERT [TableName] ON -- set to on
-- Put your insert statement here
-- insert the data from backed up temp table to your new table
SET IDENTITY_INSERT [TableName] OFF -- set to off
答案 1 :(得分:2)
如果您可以接受重新创建表,则重新创建表语法没有任何魔力。
CREATE TABLE temp_Table
(
-- Identity column with new settings
-- other columns
);
INSERT INTO temp_Table
SELECT -- Columns except identity column
FROM old_table;
DROP TABLE old_Table;
EXEC sp_rename 'temp_Table', 'old_Table';
但是,你必须自己处理外键。
答案 2 :(得分:1)
无法在创建表格后更改标识列。
而是使用以下命令重置SEED值。
DBCC CHECKIDENT('tablename', RESEED, 15)