我在 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
值一样?
感谢您的宝贵时间。
最佳答案
您是否在列定义中将该列设置为 IDENTITY 列?
CREATE TABLE example (ID int IDENTITY(1,1), Stuff VARCHAR(255))
INSERT INTO example (Stuff) VALUES ('Hello World!')
关于mysql - SQL Server 自动递增下一个 INSERT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11218214/