SQL 将表格数组规范化为多个新表格
SQL Normalizing array of tables into multiple new tables
我有一个包含 51 个 table 的数据库,它们都具有相同的模式(每个州一个 table)。每个 table 都有几百万行和大约 50 列。
我已将这些列规范化为其他 6 个 table,现在我想将这 51 个 table 中的所有数据导入到 6 个新的 table 中.列名都是一样的,所以我希望我可以自动化导入所有数据的过程。
我假设我需要做的是:
Select 具有原始架构的所有列表的名称
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'raw'
迭代所有结果
- 从 table 中获取所有行,并将
SELECT INTO
适当的列放入适当的 tables
- 从原始数据中删除行 table
有什么我遗漏的吗?另外,有什么方法可以在 SQL 服务器上安装这个 运行,这样我就不必一直打开我的 SQL Server Management Studio 了吗?
是的,显然,您可以使用 t-sql 将其自动化。但我建议您在这种情况下使用 SSIS。正如您所说,所有 table 的结构都与您可以进行一些 ETL 过程的结构相同,然后您只需更改源中的 table 名称。因此,您将拥有以下优势:
- 点击几下即可解决问题
- 错误风险低
- 您将可以使用的数据转换次数
我有一个包含 51 个 table 的数据库,它们都具有相同的模式(每个州一个 table)。每个 table 都有几百万行和大约 50 列。
我已将这些列规范化为其他 6 个 table,现在我想将这 51 个 table 中的所有数据导入到 6 个新的 table 中.列名都是一样的,所以我希望我可以自动化导入所有数据的过程。
我假设我需要做的是:
Select 具有原始架构的所有列表的名称
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'raw'
迭代所有结果
- 从 table 中获取所有行,并将
SELECT INTO
适当的列放入适当的 tables - 从原始数据中删除行 table
有什么我遗漏的吗?另外,有什么方法可以在 SQL 服务器上安装这个 运行,这样我就不必一直打开我的 SQL Server Management Studio 了吗?
是的,显然,您可以使用 t-sql 将其自动化。但我建议您在这种情况下使用 SSIS。正如您所说,所有 table 的结构都与您可以进行一些 ETL 过程的结构相同,然后您只需更改源中的 table 名称。因此,您将拥有以下优势:
- 点击几下即可解决问题
- 错误风险低
- 您将可以使用的数据转换次数