我没有SQL查询或SQL数据库的经验,所以如果我的术语错误,请原谅。
因此,我有一个包含大约17,000条SQL insert语句的文件,我在其中输入数据库中5列/属性的数据。在这17,000条语句中,只有大约1200条语句包含所有5列/属性的数据,而其余的只包含4列的数据。我需要删除所有这些不需要的语句(它们没有所有5列的数据)。
除了逐个删除之外,有没有一种简单的方法/过程来完成?如果是这样的话,如果有人能帮我解决这个问题就太好了。
发布于 2011-06-23 22:04:47
与我的优秀同事不同的一种方法是将文件运行到临时/一次性数据库中。使用@Rob在他的响应中调用的delete将表缩减为所需的数据集。然后使用像SSMS Tools Pack这样的优秀的免费工具对这些insert语句进行逆向工程。
发布于 2011-06-23 21:54:19
我可以想到两种方法:
1:使用SQL:插入所有数据,然后运行一个查询,删除没有所有必要数据的记录。如果表当前不为空,请跟踪当前数据“结束”的ID,以便查询可以将其用作WHERE语句。
DELETE FROM myTable WHERE a IS NULL OR b IS NULL /* etc. */SQL2:使用正则表达式处理文件:使用文本编辑器或命令行匹配“坏”记录或“好”记录。大多数文本编辑器都有一个查找和替换功能,允许您使用正则表达式。和命令行你可以使用grep或其他工具来处理。或者甚至是用您选择的语言解析的脚本。
发布于 2011-06-23 21:52:25
在notepad++中打开文件,使用正则表达式替换所有“坏”行。
https://stackoverflow.com/questions/6455070
复制相似问题