0

我正在用 C# 编写一个程序,该程序将从临时表中获取数据,然后将相同的数据插入 SQL Server 数据库中它们各自的新位置。该程序将按顺序执行以下步骤:

  1. 从暂存表的第一行中选择列
  2. 将每一列存储为唯一变量
  3. 将数据插入数据库中新的相应位置(每个值将发送到数据库中的多个不同表,并且这些值在许多表之间重复)
  4. 移动到下一条记录
  5. 从步骤 1 开始重复,直到处理完所有记录

那么有没有办法遍历整个记录集,将列中的每个结果存储为唯一变量,而不必为要存储的每个值编写单独的查询?有 51 列都必须放在某个地方,我认为硬编码 51 个变量并使用自定义查询对数据库进行硬编码并不是非常有效的。

我想过用一个多维数组来做这件事,但那只是一个包含大量值的字符串。任何建议将不胜感激。

4

2 回答 2

2

虽然您可以通过 .NET 应用程序做到这一点,但实际上使用 SQL 语句更容易实现。SQL 具有在表之间移动数据的良好语法:

INSERT INTO [Destination] ([Columns,])
SELECT [Columns,]
FROM [Source]

如果要在数据库之间移动数据,只需将其中一个数据库链接到另一个数据库,然后运行查询。如果您使用的是 SQL Server Management Studio,则可以按照本文设置链接服务器。否则,您可以使用该sp_addlinkedserver过程来注册链接服务器。

于 2012-10-05T18:56:22.367 回答
0

您可以创建一个包含表中每一列的属性的类,并使用像 Dapper 这样的微型 ORM 从数据库中填充这些类的实例列表。然后,您可以遍历列表并对其他表进行插入。

您甚至可以为您的各个插入创建其他类,并使用 AutoMapper 从您的源类中创建这些实例。

但是......对于你想要达到的目标来说,这可能都是矫枉过正的。

于 2012-10-05T20:31:48.597 回答