Sql server 编辑9gb.sql文件

Sql server 编辑9gb.sql文件,sql-server,large-files,replace,Sql Server,Large Files,Replace,我有一个“稍微”大的sql脚本保存为文本文件。它的总容量为8.92gb,所以有点像野兽 我必须在这个文件中进行一些搜索和替换(具体来说,将all NOT NULL更改为NULL,这样所有字段都可以为NULL),然后执行该死的操作。有没有人对能够做到这一点的文本编辑器有什么建议 解决这个问题的另一种方法是编写一个程序,读取一个块,替换我需要的东西,然后将它保存到一个新文件中,但我宁愿使用一些标准的方法 它也不能解决在SQLServerManagementStudio中打开beast来执行该死的东西

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

我必须在这个文件中进行一些搜索和替换(具体来说,将all NOT NULL更改为NULL,这样所有字段都可以为NULL),然后执行该死的操作。有没有人对能够做到这一点的文本编辑器有什么建议

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

它也不能解决在SQLServerManagementStudio中打开beast来执行该死的东西的问题

有什么想法吗

谢谢,
Eric

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

这仍然很慢,但功能非常强大。

正是为这种工作而构建的

sed -e 's/\( NOT\)\? NULL/ NOT NULL/g' < input.sql > output.sql
sed-e的/\(不是)\?空/非空/g'output.sql
sed
也可以

编辑:我修改了我的语句,以避免在输入已经包含
notnull
时生成
notnull

使用,或者简单地使用
perl-pne的s/foo/bar/'file.sql>newfile.sql
(foo将替换为bar)


加载SQL时,使用OcqL.EXE,它应该在C下的某个地方:\程序文件…\SQLServer \bin < /P> < P>您应该考虑使用Perl。它执行就地文本替换。把它当作

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

小心使用axe Eugene…您不想删除任何应该保持为非NULL的WHERE子句

您可以使用SQL Server bcp命令行实用程序来执行文件的块,您不可能在SQL Manager中加载整个内容。在我的系统上,bcp.exe位于C:\Program Files\Microsoft SQL Server\100\Tools\Binn\.Perfect中(除了我想将NOTNULL更改为NULL,而不是相反)。非常感谢。有趣的是,oracle导出文件也是一种流格式(即使它们是二进制的),所以您可以使用sed对它们执行搜索/替换操作。@CEROQ:oops,我的错。但另一种方法更容易,所以我会保持原样。