我在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
值?
感谢您的时间。
答案 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是对的。只需省略列
即可