sql - 插入到仅包含标识列的表中
问题描述
我有下表:
CREATE TABLE Seq2 (val INT NOT NULL IDENTITY);
知道我尝试过如何填充此表:
INSERT INTO Seq2(val) VALUES (1)
我有以下错误:
当 IDENTITY_INSERT 设置为 OFF 时,无法在表“Seq2”中插入标识列的显式值。
解决方案
如果我必须说,拥有这样一张桌子似乎完全没有意义。如果表只有 anIDENTITY
那么它实际上没有任何意义,所以它在那里没有意义。
话虽这么说,如果您确实有这样的表,则可以将INSERT
值放入IDENTITY
using DEFAULT VALUES
:
INSERT INTO dbo.Seq2
DEFAULT VALUES;
INSERT INTO dbo.Seq2
DEFAULT VALUES;
使用新表,这将创建具有值1
和的行2
。
如果您想明确地将INSERT
值放入表中,那么您最好删除该IDENTITY
选项。考虑到这是一个新表,只需DROP
它并使用IDENTITY
属性重新创建它:
DROP TABLE dbo.Seq2;
GO
CREATE TABLE Seq2 (val INT NOT NULL);
拥有一个只有一IDENTITY
列的表,然后您要为其定义结果是毫无意义的。要么不使用IDENTITY
并定义值,要么使用IDENTITY
并让 SQL Server 处理它。
推荐阅读
- forms - 带有多个按钮的 react-jsonschema-form
- javascript - 无法使随机图像显示 javascript
- debian - 如何获取 debian 软件包的 *.changes 文件?
- json - Angular 4 在表格中显示 json
- php - 提交html表单时替换php变量
- python - Tensorflow 连接未指定形状的张量
- hibernate - JPA:未从父主键插入外键
- python - 使用较小的日期范围和列值过滤较大的 DataFrame
- html - django 静态文件在直播时不会更新
- javascript - Laravel - 错误:500。使用 Ajax 更新记录