Sql server 将表数组规范化为多个新表的SQL

Sql server 将表数组规范化为多个新表的SQL,sql-server,database-normalization,Sql Server,Database Normalization,我有一个包含51个表的数据库,所有表都具有相同的模式(每个州一个表)。每个表有几百万行和大约50列 我已经将这些列规范化为其他6个表,现在我想将这51个表中的所有数据导入6个新表中。列名都是一样的,所以我希望我可以自动导入所有数据的过程 我想我需要做的是: 选择具有原始架构的所有列表的名称 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'raw' 迭代所有结果 抓取该表中的所有行,然后选择进入相

我有一个包含51个表的数据库,所有表都具有相同的模式(每个州一个表)。每个表有几百万行和大约50列

我已经将这些列规范化为其他6个表,现在我想将这51个表中的所有数据导入6个新表中。列名都是一样的,所以我希望我可以自动导入所有数据的过程

我想我需要做的是:

  • 选择具有原始架构的所有列表的名称

    SELECT TABLE_NAME 
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_SCHEMA = 'raw'
    
  • 迭代所有结果

  • 抓取该表中的所有行,然后
    选择进入相应表中的相应列
  • 从原始表中删除行

  • 我有什么遗漏吗?还有,有没有办法让它在SQL Server上运行,这样我就不必一直打开SQL Server Management Studio?

    是的,显然,您可以使用t-SQL将其自动化。但我建议您在这种情况下使用SSI。正如您所说,所有表的结构都是相同的,您可以进行一些ETL过程,然后只需在源代码中更改表名。连续地,您将拥有以下优势:

  • 点击几下就可以解决问题
  • 错误风险低
  • 您将能够使用数据转换的数量

  • 一旦有了脚本,就可以使用