C# 在sql文件中替换的最佳步骤

C# 在sql文件中替换的最佳步骤,c#,.net,regex,sql-server-2005,C#,.net,Regex,Sql Server 2005,我需要更新磁盘上存储的大约300个.sql文件中的所有varchar到nvarchar、text到ntext和char到nchar。这些文件包括存储过程、触发器、函数、视图等。实现这一点的最佳方法是什么。。无论如何,sql文件只不过是文本文件。我将遍历文件,并在解析时替换这些字符串。如果您真的想要安全的方法,您需要使用一个真正理解结构的解析器,并且只替换这些匹配的字符串 我不确定投入其中的努力是否值得,但您可以自己编写代码。您可以尝试看看开源T-SQL解析器是否可以处理您的文件;一个是开源的一部

我需要更新磁盘上存储的大约300个.sql文件中的所有varchar到nvarchar、text到ntext和char到nchar。这些文件包括存储过程、触发器、函数、视图等。实现这一点的最佳方法是什么。

。无论如何,sql
文件只不过是文本文件。我将遍历文件,并在解析时替换这些字符串。

如果您真的想要安全的方法,您需要使用一个真正理解结构的解析器,并且只替换这些匹配的字符串


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

如果字符串常量包含单词“text”该怎么办?在我看来,这很常见。您也不想替换内部注释。您需要比简单的搜索和替换更能识别语法的内容。也可能有名为Text的列名。在这种情况下,您也不应该替换这些。了解如何确保替换“text”的正确实例。比如说,当您遇到一个“createtable”时,您可能可以声明遇到的“text”将是一个数据类型。否则,对于仅300个文件,它可能不值得,您最好在执行手动
Find…Replace
@Chinjoo:Agreed时手动执行。这是不将数据库对象命名为关键字的最佳理由之一。因为在对答案的评论中已经说明了问题(单词可能出现在文本中),似乎您需要解析文件以识别需要更改的类型。将语言设置为SQL后,您可以使用一种方法来查询所选文本的确切语法角色,如关键字、字符串文字等。如果您有这么多文件,这可能值得研究。是的。。解析是一条路要走。。。你能就如何继续解析方法提出一些建议吗!!!这里是:斯金塞拉为你做解析,不需要手动做!