Sql服务器,将数据插入到两个表中,在一个表之前填充另一个表



我在这里的第一篇文章,因为我开始了一份新工作,我的旧sql技能已经在测试中了——我也不是以前的高级用户。我相信这里可能已经有一些答案可以回答我的问题,但我仍然有点不熟悉——无论是对论坛还是更高级的sql语法。有些答案也相当古老。还有,请原谅我的语法错误。

不管怎样,如果有人能帮忙的话。

我将收到巨大的列表(.csv或类似的(与数据输入。数据列表将包含类型customerdata的字段(名称、地址等(和类型房地产/物业数据的字段(街道地址、建筑ID等(。

customerdata和propertydata需要放在两个单独的表中。

我的问题是这样的:-这两个表相互依赖,因为在属性中,数据表需要首先用数据填充,这将生成一个唯一的GUID-在填充customerdata表时将再次使用该GUID-将客户连接到正确的属性/房地产。

首先想到的是将所有数据填充到一个临时表中。

但我不太确定如何循环遍历每一行,所以我确保首先填充propertytable,然后使用GUID填充customertable。

  1. 获取涉及属性数据的数据并填充属性表
  2. 获取在属性表中生成的唯一GUID
  3. 获取涉及customerdata的数据并使用正确的GUID填充customer表
  4. 循环遍历集合的其余部分,直到不再有包含数据的行为止

我看到了一些似乎在我范围内的东西,如事务、游标、输出等,但不确定哪种方法是解决我的挑战的最佳方法?当我这样想的时候,我是不是接近了什么?

编辑:
这些是以.xlsx/.csv格式作为一行的示例字段。此列表中的行数会随时间变化。

  1. 属性ID
  2. 物业地址
  3. 物业建筑ID(仅一个(
  4. 物业成立日期
  5. 。。。其他与属性相关的其他字段
  6. 客户ID
  7. 客户名称
  8. 客户地址
  9. 邮政编码
  10. 。。。其他与客户相关的其他字段

字段1到5需要首先填充属性表。当填充属性表中的每一行时,它将生成唯一的GUID。然后,字段6到10将用于填充客户表,但也需要使用上面在属性表中创建的相应的唯一GUID来填充。

属性表:

  1. 属性ID
  2. 物业地址
  3. 物业建筑ID(仅一个(
  4. 物业成立日期
  5. 。。。其他与属性相关的其他字段
  6. UNIQUE PROPERTY GUID(在填充表中的每一新行时创建(

客户表:

  1. UNIQUE PROPERTY GUID
  2. 客户ID
  3. 客户名称
  4. 客户地址
  5. 邮政编码
  6. 。。。其他与客户相关的其他字段

我建议您使用临时表。

  1. 将所有数据加载到暂存/临时表中,并为每一行分配GUID编号
  2. 将属性详细信息从临时表复制到从临时表获取GUID的属性表
  3. 将客户详细信息从临时表复制到从临时表中获取GUID的客户表
  4. 删除暂存表中的数据

一个快速的例子:

INSERT INTO PropertyDetails( GUID, PropertyID, PropertyAddress, ... )
SELECT GUID, PropertyID, PropertyAddress, ...
FROM StagingTable
INSERT INTO CustomertDetails( GUID, CustomerID, CustomerName, ... )
SELECT GUID, PropertyID, PropertyAddress, ...
FROM StagingTable

相关内容

  • 没有找到相关文章

最新更新