问题标签 [identity-insert]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
119 浏览

.net - 如何使用 IDENTITY_INSERT 设置为 ON 的 Linq 插入具有特定身份的记录

我正在尝试使用 linq 在两个数据库之间同步表。我希望两个表中的主键(身份)相同。我无法使用 linq 完成此操作。

在搜索谷歌之后,我能得到的最接近的是:

但这会引发异常:

当 IDENTITY_INSERT 设置为 ON 或复制用户插入 NOT FOR REPLICATION 标识列时,必须为表“Shoes”中的标识列指定显式值。

我知道我可以通过使用 ExecuteCommand 插入带有现有身份的新记录来解决这个问题,但我想知道是否可以仅使用 linq。

0 投票
3 回答
178 浏览

sql - 如何在 SQL 中将数据插入一行?

我正在学习一个教程并从一本书中学习 MVC,我被告知使用这个脚本创建一个表,我做到了。但是现在我想在我的 Pet 表中添加一整行,但我做不到。

用于创建我所有表的脚本。

我想在我的 Pet 表的第一行中添加一些随机值(用于测试)。这是 Pet 表的第一行作为图像,以进一步清晰。

在此处输入图像描述

我尝试使用此脚本将值添加到我的表中。

但我得到一个错误说

只有在使用列列表并且 IDENTITY_INSERT 为 ON 时,才能为表“Pet”中的标识列指定显式值。

现在我对 SQL 相当陌生,我无法弄清楚这一点。我查看了人们所说的其他 SO 答案SET IDENTITY_INSERT,但这对我也不起作用。我相信我误解了其他 SO 答案,因为我对数据库语言相当陌生。所以需要你的帮助。

谢谢

0 投票
1 回答
494 浏览

c# - EF将子项插入特定的父项

我一直在到处寻找,发现了很多问题,但他们都没有回答我的问题。

我想做的事情很简单,假设我们有这样的事情:

EF 负责创建数据库并通过脚手架获得控制器和视图。一切正常,我可以创建父级。我还可以使用从下拉列表中选择的 ParentID 创建 Child。

我真正想做的是删除下拉菜单并将 ParentID 作为参数传递,如下所示:

鉴于我们得到了这个:

提交时,我得到“当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'Children' 中插入标识列的显式值。” 现在我到处查看并尝试了各种属性,但我仍然无法让它工作。

我将不胜感激任何形式的帮助。


更新

从控制器创建方法:


只是为了展示更多关于问题的信息。在这里,我在视图中使用带有选择控件的默认脚手架版本。

0 投票
1 回答
1566 浏览

c# - SQL Server 为非键属性提供“重复键”错误?

我有一个products5 列的数据库表。Id是主键。在 SQL Server Management Studio 中,您可以在这里清楚地看到:

截图 1

我有一个productwith Id= 69 and Name= "Lawn Darts" 。我正在尝试使用Id= 420 和Name=“草坪飞镖”插入新产品。我正在尝试使用身份插入,以便我可以为插入的产品指定 ID。所以名称相同,但ID不同。这应该没问题吧?

我正在使用 LINQ --> SQL 插入 C# 控制台应用程序。当我尝试插入具有相同Name但不同Id的内容时,我收到以下错误消息:

无法在具有唯一索引“IX_Name”的对象“dbo.Products”中插入重复的键行。重复键值为 (Lawn Darts)。

为什么,如果它是非键?

0 投票
1 回答
242 浏览

vb.net - 在 VB 表单中使用 LINQ,出现错误:当 IDENTITY_INSERT 设置为 OFF 时,无法在表 x 中插入标识列的显式值

我只是在 LINQ 的世界中摸索,我已经设法让我的 VB 应用程序从我的 Azure DB 中选择,现在我正在尝试插入一个新用户。

我收到错误描述“当 IDENTITY_INSERT 设置为 OFF 时,无法在表 x 中插入标识列的显式值”。

我知道关于这个主题有类似的问题,但似乎他们中的大多数都遇到了问题,因为他们正试图插入一个明确的值,并且需要将标志更改为 ON。我试图在让数据库分配 ID 值的同时进行插入,所以我认为 IDENTITY_INSERT 标志应该关闭,我需要更改我的 VB 或 LINQ 语句以告诉它不要尝试为我的 ID 分配值柱子。

这是我在运行插入的 VB 表单按钮中的代码:

usr 语句包含表中的所有字段,除了 ID 列。我并没有真正看到我的代码试图在哪里插入 ID 列的值,但它可能在幕后某处执行此操作,我需要明确告诉它不要这样做。

用户表的 SQL 如下:

任何帮助将不胜感激。

0 投票
3 回答
2509 浏览

c# - 错误:无法将值 NULL 插入“ID”列

我创建了一个注册页面,我有一个带有 ID 主键的表,但我收到此错误: 在此处输入图像描述

无法将值NULL插入'Id'列,表'D:\课程学习\动态网站设计\课程设计1\APP_DATA\REGISTRATION.MDF.dbo.Table';列不允许空值。插入失败。该语句已终止。

我刚开始学习 C#,真的不知道如何解决这个问题。

这是我的代码。

0 投票
8 回答
14994 浏览

c# - 为什么这个带有 IDENTITY_INSERT 的 EF 插入不起作用?

这是查询:

执行时,Id新表上插入的记录的 仍然为 1。

新:当我使用交易或 TGlatzer 的答案时,我得到了异常:

当 IDENTITY_INSERT 设置为 ON 或复制用户插入 NOT FOR REPLICATION 标识列时,必须为表“项目”中的标识列指定显式值。

0 投票
1 回答
37 浏览

sql-server - 在 Microsoft SQL 中支持 RESTful UPSERTS

我正在开发一个小型 Web 应用程序并使用 Microsoft SQL 进行数据存储。我正在使用利用 JDBC 的服务层与数据库交互。

目前,当我尝试将 ID 不存在的“客户”放入数据库中时,我不断收到错误消息:

为了支持正确的 RESTful API,如果此 ID 不存在,我希望能够插入它或更新已经存在的客户。我查找了无数与我的有点相关的问题,其中很多人谨慎地建议打开 IDENTITY_INSERT,但说这是一种不好的做法。我很好奇我可以在数据库或代码中做什么来健康地支持 RESTful PUT - 如果有办法在维护 IDENTITY 列的同时做到这一点,那么我可以在不了解 CustomerID 列的情况下进行 POST 操作。

0 投票
1 回答
103 浏览

sql-server - fatfreeframework 与 SQL Server 数据库使用映射器 copyfrom 方法和部分插入

我正在尝试使用 fatfreeframework v3.5 的 copyFrom('POST') 和 save() 方法插入记录。来自 POST 的数据不包含此表设置为自动增量的 id 字段。日志中的 SQL 是

如您所见,尽管插入中没有包含 id 列,但 fatfree 仍在添加集合标识插入。有没有办法告诉映射器不要设置这个标志?还是有其他解决方法?我可以获取当前的最大 ID,然后插入 +1,但这似乎很笨拙。

我应该添加此 SQL 失败,因为 id 列未包含在列列表中。

这是在 mapper.php 函数插入中设置 IDENTITY_INSERT 的代码。

在 db 对象上调用模式会返回这个数组 {"id":{"type":"int","pdo_type":1,"default":null,"nullable":false,"pkey":true}, "changed_date":{"type":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false},"status":{"type":"varchar" ,"pdo_type":2,"default":null,"nullable":false,"pkey":false},"supply_id":{"type":"varchar","pdo_type":2,"default":null ,"可为空":false,"pkey":true},"描述":{"type":"varchar","pdo_type":2,"default":null,"nullable":true,"pkey":false },“单元”:{"type":"varchar","pdo_type":2,"default":null,"nullable":false,"pkey":false},"hcpcs":{"type":"char","pdo_type" :2,"default":null,"nullable":true,"pkey":false},"unitcost":{"type":"decimal","pdo_type":2,"default":null,"nullable" :false,"pkey":false},"cap":{"type":"decimal","pdo_type":2,"default":null,"nullable":false,"pkey":false},"rev ":{"type":"smallint","pdo_type":1,"default":null,"nullable":false,"pkey":false},"buq":{"type":"smallint"," pdo_type":1,"默认":null,"可为空":true,"pkey":false},"create_ts":{"type":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false} ,"log_ts":{"type":"int","pdo_type":1,"default":null,"nullable":true,"pkey":false},"filename":{"type":"varchar ","pdo_type":2,"default":null,"nullable":true,"pkey":false},"line_no":{"type":"smallint","pdo_type":1,"default": null,"nullable":true,"pkey":false},"file_ts":{"type":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":错误的}}pkey":false},"create_ts":{"type":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false},"log_ts":{"类型":"int","pdo_type":1,"default":null,"nullable":true,"pkey":false},"filename":{"type":"varchar","pdo_type":2 ,"default":null,"nullable":true,"pkey":false},"line_no":{"type":"smallint","pdo_type":1,"default":null,"nullable":true ,"pkey":false},"file_ts":{"type":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false}}pkey":false},"create_ts":{"type":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false},"log_ts":{"类型":"int","pdo_type":1,"default":null,"nullable":true,"pkey":false},"filename":{"type":"varchar","pdo_type":2 ,"default":null,"nullable":true,"pkey":false},"line_no":{"type":"smallint","pdo_type":1,"default":null,"nullable":true ,"pkey":false},"file_ts":{"type":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false}}"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false},"log_ts":{"type":"int","pdo_type":1,"default ":null,"nullable":true,"pkey":false},"filename":{"type":"varchar","pdo_type":2,"default":null,"nullable":true,"pkey ":false},"line_no":{"type":"smallint","pdo_type":1,"default":null,"nullable":true,"pkey":false},"file_ts":{"type ":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false}}"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false},"log_ts":{"type":"int","pdo_type":1,"default ":null,"nullable":true,"pkey":false},"filename":{"type":"varchar","pdo_type":2,"default":null,"nullable":true,"pkey ":false},"line_no":{"type":"smallint","pdo_type":1,"default":null,"nullable":true,"pkey":false},"file_ts":{"type ":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false}}"log_ts":{"type":"int","pdo_type":1,"default":null,"nullable":true,"pkey":false},"filename":{"type":"varchar" ,"pdo_type":2,"default":null,"nullable":true,"pkey":false},"line_no":{"type":"smallint","pdo_type":1,"default":null ,"可为空":true,"pkey":false},"file_ts":{"type":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false }}"log_ts":{"type":"int","pdo_type":1,"default":null,"nullable":true,"pkey":false},"filename":{"type":"varchar" ,"pdo_type":2,"default":null,"nullable":true,"pkey":false},"line_no":{"type":"smallint","pdo_type":1,"default":null ,"可为空":true,"pkey":false},"file_ts":{"type":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false }}默认":null,"nullable":true,"pkey":false},"line_no":{"type":"smallint","pdo_type":1,"default":null,"nullable":true," pkey":false},"file_ts":{"type":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false}}默认":null,"nullable":true,"pkey":false},"line_no":{"type":"smallint","pdo_type":1,"default":null,"nullable":true," pkey":false},"file_ts":{"type":"datetime","pdo_type":2,"default":null,"nullable":true,"pkey":false}}

如您所见, id 有一个 "pkey":true 条目,因此可以查看帖子中的字段,然后查看该字段并确定是否需要设置 IDENTITY_INSERT。也许我会实现这一点。我担心这超出了我的工资等级。

0 投票
1 回答
707 浏览

sql - MS SQL Server 不允许我将 IDENTITY_INSERT 设置为 ON

我在数据库(MS SQL Server 2008)中有一个表,其中填充了数据。我想将其中一些数据(其中是具有 IDENTITY 约束的列)移动到另一个数据库中具有相同名称的表中以进行备份。由于我有一个表,其中包含要移动的 IDENTITY 列,因此我需要将 IDENTITY_INSERT 设置为 ON。我不想对此进行硬编码,因为将来我可能会有其他表和列遇到此问题。

我一直在摆弄这段代码几个小时,但无法让它工作:

运行此脚本时出现以下错误:只有在使用列列表并且 IDENTITY_INSERT 为 ON SQL Server 时,才能指定表中标识列的显式值。

似乎 MS SQL 忽略了我的字符串@IDENTITY_INSERTTableCommand 中的“ON”,但是当我在字符串中输入乱码时,它会抱怨合成错误。

谁能告诉我我做错了什么?先感谢您。