1

我在 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列将自动接收下一个可用整数用作主键,我不参与任何工作。

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

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值所做的那样?

感谢您的时间。

4

2 回答 2

4

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

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

INSERT INTO example (Stuff) VALUES ('Hello World!')
于 2012-06-27T01:34:40.490 回答
0

那是您需要的身份列。@Mark Byers 是正确的。只需省略列

于 2012-06-27T01:34:38.493 回答