SQL Server自动递增下一个INSERT查询

时间:2012-06-27 01:30:22

标签: mysql sql sql-server null auto-increment

我在MySQL方面有很好的背景,但我不熟悉SQL Server的细节。我将通过在MySQL中设置和解决完全相同的问题来提出我的问题:


创建表格:

CREATE TABLE IF NOT EXISTS `example` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `stuff` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

在表格中插入一个值:

INSERT INTO `example` (
  `id`, `stuff`
) VALUES (
  NULL, 'Hello World'
) ;

通过执行上面的查询,id列将自动接收下一个可用的整数作为主键,我的工作不涉及。

但是,在将行插入int类型的SQL Server表时尝试相同的想法会给我这个错误:

Cannot insert the value NULL into column 'id', table 'database.user.example'; column does not allow nulls. INSERT fails. (severity 16) ...

可以在SQL Server INSERT查询中使用什么,它会自动增加主键,就像MySQL一样使用NULL值?

感谢您的时间。

2 个答案:

答案 0 :(得分:4)

您是否在列定义中将列设置为IDENTITY列?

CREATE TABLE example (ID int IDENTITY(1,1), Stuff VARCHAR(255))

INSERT INTO example (Stuff) VALUES ('Hello World!')

答案 1 :(得分:0)

这是您需要的标识栏。和@Mark Byers是对的。只需省略列

即可