我有一个“略微”的大型sql脚本保存为文本文件。总计为8.92gb,所以它有点像野兽。
我必须在这个文件中进行一些搜索和替换(具体来说,将所有NOT NULL更改为NULL,因此所有字段都可以为空)然后执行darned thing。有没有人对能够做到这一点的文本编辑器有任何建议?
我能看到解决问题的另一种方法是编写一个程序来读取一个块,替换我需要的东西,然后将它保存到一个新文件,但我宁愿使用一些标准这样做的方式。
它也没有解决在sql server管理工作室打开野兽来执行这个问题的问题......
有什么想法吗?
谢谢, 埃里克
答案 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子句