sql 17中的数据清理

ikfrs5lh  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(327)

我是sql新手,目前正在努力清理大型数据库。
在下面的链接中,您可以看到我正在处理的数据。这基本上是2018年在奥地利上市的所有保险公司的财务账目。
我现在要做的是删除列f1和f2,以及从每个表中删除行1-4,重命名列名并取消对数据的IVOT(这是我对清理的理解:)…)由于数据库包含许多表,我想知道,您知道一个命令可以帮助我一次删除所有表中的f1和f2列吗?我不想手动更改每个表,因为我确实有日期,直到2014年。

ltqd579y

ltqd579y1#

我会给你一些提示,但不知道确切的细节很难给出一个完整的解决方案。
要获取表名和列名,可以使用查询:

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME like N'2018%'

或者你可以改变主意 TABLE_NAME like 根据需要。
如果您想查看查询并执行它,您可以扩展上面的内容来提供 Alter Table 具体如下:;

SELECT distinct 'Alter table ' + Table_Schema + '.' + Table_Name + ' drop column F1'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME like N'2018%'

这将根据需要生成脚本。您可以通过更改 Select 字符串和where子句,如果需要,可以使用regex一次性捕获所有表。
正如@honeybacker所指出的,您应该知道前4行是什么,您在managementstudio中看到的前4行可能不是数据库本身内部的。你所能做的就是查询你所相信的,并找到一种方法来明确地识别它们,然后把delete语句作为上面的动态语句来编写并执行。
不管怎样,准备好备份,以防万一

1tuwyuhd

1tuwyuhd2#

非常感谢大家的快速回复。我将不得不详细说明这些,因为我是一个完全的初学者,并不真正理解你的意见,现在:)。。但我正在努力。
关于前4行,我基本上要删除每个空(null)单元格。通过删除前4行,我不得不承认我也会删除一个标题,但为了简化过程,我可以忍受这个“错误”

相关问题