在我的所有搜索中,我发现您基本上必须将现有表格复制到新表格以便在2008年之前识别列,这是否也适用于2008年?
感谢。
到目前为止我找到的最简洁的解决方案:CREATE TABLE Test
(
id int identity(1,1),
somecolumn varchar(10)
);
INSERT INTO Test VALUES ('Hello');
INSERT INTO Test VALUES ('World');
-- copy the table. use same schema, but no identity
CREATE TABLE Test2
(
id int NOT NULL,
somecolumn varchar(10)
);
ALTER TABLE Test SWITCH TO Test2;
-- drop the original (now empty) table
DROP TABLE Test;
-- rename new table to old table's name
EXEC sp_rename 'Test2','Test';
-- see same records
SELECT * FROM Test;
答案 0 :(得分:1)
我们无法使用sql命令向现有列添加标识,但我们可以使用GUI完成。 右键单击表 - 设计 - 选择要添加标识的列。 转到下面提供的属性。找到标识规范并将其设置为yes。 保存表格。
如果未保存,则从菜单中转到工具 - 选项 - 表设计器 - 取消选中该复选框以阻止保存更改。现在你可以保存表修改。
现在你现有的桌子有了身份。
答案 1 :(得分:0)
在我阅读的有关2008年的所有新功能文档中,向现有列添加标识并非我记得的功能。您找到的解决方案是正确的,我认为自动添加标识增量的过程很少有用。
答案 2 :(得分:0)
你可以做这样的事情。
ALTER TABLE my_table ADD ID_COLUMN INT IDENTITY (1,1) NOT NULL
答案 3 :(得分:0)
您可以使用Enterprise Manager / Management Studio的GUI将IDENTITY属性添加到现有列。
答案 4 :(得分:0)
在SQL 2005及更早版本中,您无法将现有列修改为标识列。我认为MS在2008年改变这种状况的可能性非常小。