Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQLCopy和事务_C#_Sql Server - Fatal编程技术网

C# SQLCopy和事务

C# SQLCopy和事务,c#,sql-server,C#,Sql Server,我使用SqlBulkCopy将数据从C中的2个数据表复制到SQL Server。这些表由ParentId关联。我已将每个DataTable的SqlBulkCopy包装在一个事务中。我将在其中写入数据的SQL Server表的ParentId的标识也设置为Yes 我正在使用将父数据表写入服务器 bulkCopy.WriteToServer(parentDataTable); 现在,我希望能够使用SQL Server中的新ParentId更新子数据表中的ParentId。但是,父数据表仍然具有原始

我使用SqlBulkCopy将数据从C中的2个数据表复制到SQL Server。这些表由ParentId关联。我已将每个DataTable的SqlBulkCopy包装在一个事务中。我将在其中写入数据的SQL Server表的ParentId的标识也设置为Yes

我正在使用将父数据表写入服务器

bulkCopy.WriteToServer(parentDataTable);
现在,我希望能够使用SQL Server中的新ParentId更新子数据表中的ParentId。但是,父数据表仍然具有原始ParentId,而不是SQL Server ParentId

在SqlBulkCopy.WriteToServer调用之后,如何获取父数据表的ParentId?

请看一看,如果使用此选项,则可以使用旧的ParentId插入到新表中确保ParentId是插入查询的一部分-如果启用了SET选项,则不会失败


如果您确实需要更改ParentId,比如说,如果表中有现有数据,那么您需要在大容量插入之前进行更改,因此仍然需要设置identity\u insert。如果您尝试在之后再这样做,您就倒霉了,因为父表和子表之间的链接已丢失。

您应该能够使用SqlBulkCopy对象的[ColumnMappings][1]属性映射您喜欢的任何列。

您想更改多个表的主键。请参阅下面的帖子来解释这个问题:更新级联是一个糟糕的想法。除非有非常非常好的理由,否则我不会允许它出现在任何系统中。