问题标签 [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 投票
3 回答
3106 浏览

sql - 从属插入语句

我有一个关于客户客户(姓名,地址)的数据表,其中包含“John Doe”、“Some Street 123”等行。对于表中的每一行,我想在 Person(id, name) 表中插入一行,在 Address(id, person_id, address) 表中插入一行。

我可以通过为 Customer 中的每一行运行两个插入语句来完成此操作:

但这是低效的。我想批量插入,有点像这样:

0 投票
3 回答
764 浏览

sql - 批量插入返回无序标识字段

我的 (tableA) 有一个标识字段 (ID),我需要通过一次插入操作一次插入多行,所以我使用表结构作为存储过程的传递参数

我需要按插入顺序插入的 id,所以我在我的 SP 中运行以下查询(tableB 与 tableA 具有相同的结构):

如果我用 100 条记录运行上述过程,它会返回新的标识字段,并按照它插入到 tableB 的顺序,但是当我用 500 条记录运行它时,所有插入的 id 都返回,但没有合理的顺序,为什么会发生这种情况?

我不需要另一个临时表将它放在那里并对其进行排序并返回,我只想知道它为什么会发生,是否有任何解决方案而不使用额外的临时表进行排序?

0 投票
6 回答
23903 浏览

c# - IDENTITY INSERT 和 LINQ to SQL

我有一个 SQL Server 数据库。该数据库有一个名为 Item 的表。项目有一个名为“ID”的属性。ID 是我桌子上的主键。这个主键是一个增量值为 1 的 int。当我尝试插入记录时,我收到一条错误消息:

当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'Item' 中插入标识列的显式值。”。

我正在尝试使用以下代码插入记录:

当我在提交之前查看 i.ID 时,我注意到 i.ID 设置为 0。这意味着我正在尝试插入 0 作为身份。但是,我不确定它应该是什么。有人可以帮我吗?

谢谢!

0 投票
4 回答
140 浏览

asp.net - 我的 SQL 语句有问题

这是我的声明:

我明白了:

关键字“INTO”附近的语法不正确。必须声明标量变量“@TopicsID”。必须声明标量变量“@TopicsID”。

0 投票
4 回答
4638 浏览

asp.net - 存储过程 IDENTITY_INSERT

我最近更改了我的数据表,我删除了列并添加了一个新列,该列定义为 identity = True 和 identity seed = 1,identity increment = 1。当我尝试通过 STORE PROCEDURE 将数据插入该表时,我得到了这个异常:

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

我看到我需要添加以下行: SET IDENTITY_INSERT [dbo].[AirConditioner] ON 最后关闭我添加了它仍然抛出异常......

我的存储过程作为图片附加在此处输入图像描述

0 投票
9 回答
85589 浏览

c# - 带有标识列的 SqlBulkCopy 插入

我正在使用该SqlBulkCopy对象将生成的几百万行插入到数据库中。唯一的问题是我要插入的表有一个标识列。我尝试将SqlBulkCopyOptionstoSqlBulkCopyOptions.KeepIdentity和 identity 列设置为0'sDbNull.Valuenull. 这些都没有奏效。我觉得我错过了一些非常简单的东西,如果有人能启发我,那就太好了。谢谢!

编辑为了澄清,我没有在DataTable我正在导入中设置身​​份值。我希望它们作为导入的一部分生成。

编辑 2 这是我用来创建基础SqlBulkCopy对象的代码。

0 投票
3 回答
2328 浏览

sql-server - 强制 SET IDENTITY_INSERT 从 MS Access 更快生效

我正在将一套 MS Access 后端数据库升级到 SQL Server。我编写了 SQL 脚本以在 SQL Server 中创建表模式。现在我正在尝试填充表格。大多数表都有自动编号的主键。这是我的一般方法:

第一次插入立即发生。随后的插入尝试失败并出现错误:“当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'TblName' 中插入标识列的显式值。”

我为该特定错误添加了一个 Resume 语句,还添加了一个计时器。事实证明,错误持续了整整 600 秒(十分钟),然后插入成功进行。

MS Access 是否每 10 分钟自动刷新一次其 ODBC 会话?有没有办法让这种情况发生得更快? 我错过了一些明显的东西吗?

对于那些马上想说“使用升迁向导”的人的背景信息:
我没有使用内置的升迁向导,因为我需要能够从头到尾编写整个操作的脚本。目标是在客户端位置执行切换之前在测试环境中运行它。

0 投票
3 回答
2981 浏览

tsql - 插入带有标识和外键列的表

我试图从两个不同的数据库将值从一个表插入到另一个表中。

我的问题是我有两个有关系的表,第一个表也有一个标识列。

例如表第一(id,名称) - 表第二(id,地址)

所以现在这两个表都存在一个数据库中的值,我正在尝试将值从这个数据库复制到另一个数据库。

因此,当我将值从第一个 db 插入到第二个 db 时,第一个表将自己插入 Id 列的值,所以现在我必须将该 id 链接到第二个表。

我怎样才能做到这一点?

使用 MSSQL 服务器 2000更新

0 投票
1 回答
475 浏览

sql-server-2008 - identity_insert on/off 后的 SQL Server 完整性检查

我正在将旧应用程序(php + mysql)中的数据导入重写版本(sql server 2008 和 mvc3)。我目前正在编写一个数据库同步/转换包。

由于某种原因,mysql 数据具有主键但没有外键,并且由于数据仍然是相关的(尽管缺少外键),所以我的转换包正在使用 IDENTITY_INSERT ON/OFF。因为源数据无法强制执行数据完整性,所以我想在执行插入并将 IDENTITY_INSERT 设置为 OFF 后执行完整性检查。

有没有一种好方法来编写该动作的脚本?最好在表级别而不是整个数据库上?

谢谢。

0 投票
1 回答
313 浏览

sql - ETL 策略:身份插入与使用身份逻辑

我的一个 ETL 将大约 1800 万行从一台服务器移动到另一台服务器以进行进一步处理。我正在使用该FAST LOAD选项。

对于身份列,我有两个选择:

  • 采用IDENTITY INSERT
  • 不要为 Identity Column 设置任何输入,从而强制 SQL Server 为插入的每一行生成一个新 IDENTITY

Identity 列的值无关紧要。

我应该选择哪个选项以获得最佳性能?