2010-11-25 66 views
5

我需要将存储在我的磁盘上的一些300个.sql文件中的所有varchar更新为nvarchar,将text更新为ntext,并将char更新为nchar。这些文件包括存储过程,触发器,函数,视图等。什么是实现这一目标的最佳方法。在sql文件中替换的最佳步骤

+0

由于已在回复的评论中指出了这些问题(文字在文字中出现的可能性),因此您似乎需要解析这些文件以确定需要更改的类型。 – Orbling 2010-11-25 18:21:14

+1

有优秀的Scintilla源代码编辑器控件的.NET包装器。将语言设置为SQL之后,可以使用一种方法来查询所选文本的确切语法角色,例如关键字,字符串文字等。如果您有这么多的文件,这可能值得深入研究。 – neo2862 2010-11-25 18:22:24

回答

2

如果你真的想要安全的方法,你需要使用一个解析器,它实际上理解结构,并只替换这些匹配的出现。

我不确定潜入其中的努力是否值得,但您可以自己编写代码。您可以尝试查看开源T-SQL解析器是否可以处理您的文件;一个是开源bsn ModuleStore versioning toolset的一部分。

0

.sql文件无非是文本文件。我会遍历这些文件,并在解析时替换这些字符串。