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

标签 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 值一样?

感谢您的宝贵时间。

最佳答案

您是否在列定义中将该列设置为 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/

相关文章:

mysql - 如果我添加或减去一个值,我的变量中的值就会消失(不打印)

c# - 使用 Repeater 和 SQL 自定义分页

sql-server - 并发 - Spring + Hibernate + SQL Server

java - Tomcat8 加载错误的 SQL Server 驱动程序/未找到 SQLServerXADataSource

sql-server - SQL Server 不区分大小写的排序规则

MySQL 预订可用性,重叠日期范围

php - 使用 MySQL 连接

mysql - SQL 通过对行进行分组获取公共(public)值

sql - 在 MS Sql Server 中重命名 SQL Server 索引

mysql - 计数大于总行数