编辑9gb .sql文件

时间:2010-03-12 10:44:24

标签: sql-server large-files replace

我有一个“略微”的大型sql脚本保存为文本文件。总计为8.92gb,所以它有点像野兽。

我必须在这个文件中进行一些搜索和替换(具体来说,将所有NOT NULL更改为NULL,因此所有字段都可以为空)然后执行darned thing。有没有人对能够做到这一点的文本编辑器有任何建议?

我能看到解决问题的另一种方法是编写一个程序来读取一个块,替换我需要的东西,然后将它保存到一个新文件,但我宁愿使用一些标准这样做的方式。

它也没有解决在sql server管理工作室打开野兽来执行这个问题的问题......

有什么想法吗?

谢谢, 埃里克

5 个答案:

答案 0 :(得分:6)

sed专为完成这类工作而打造。

sed -e 's/\( NOT\)\? NULL/ NOT NULL/g' < input.sql > output.sql

sed也是available on Windows

修改:我修改了我的语句,以避免在输入已包含NOT NOT NULL时产生NOT NULL

答案 1 :(得分:1)

使用sed,或只是perl -pne 's/foo/bar/' file.sql > newfile.sql(foo将替换为条形码)。

要加载SQL,请使用应位于c:\ program files下的osql.exe ... \ sql server \ bin

答案 2 :(得分:0)

您可以使用映射文件的编辑器,而不是将其加载到内存中。像UltraEdit或Notepad ++一样,我确信还有更多。

这仍然很慢但非常实用。

答案 3 :(得分:0)

你应该考虑使用perl。它进行就地文本替换。将其用作

perl -pie "s/ NOT NULL/ NULL/g" hugefile.sql

答案 4 :(得分:0)

小心那个斧头Eugene ......你不想破坏任何应该保持NOT NULL的WHERE子句