1

我有一个来自 MySQL 的 sql 转储文件,我用它来创建 SQL Server (2005) 表。

我需要将大于 varchar(8000)(sql server 2005 的最大值)的列声明更改为 varchar(max)。

我正在使用 Visual Basic 脚本来解析转储文件并进行这些更改。它只是将整个文件视为一个字符串。如果数字大于8000,我只想更改,但我不知道该怎么做。有没有办法检查声明中的那个数字并改变它?我制作了一个正则表达式来查找声明中的数字。但我不知道如何说:

对于匹配 varchar(int>8000) 的所有字符串,更改为 varchar(max)。

4

1 回答 1

1

正则表达式匹配大于(或等于)8000 的数字:/^([89]\d{3}|\d{5,})$/

where/是正则表达式的分隔符,后跟 start ( ^),后跟 ( (...|...)) 8 或 9 位和 3 位以上的数字 ( [89]\d{3}) 或 5 位或以上的数字 ( \d{5,}),后跟字符串的结尾 ( $) 和正则表达式分隔符 ( /)。

要在您的上下文中使用,应该这样做......

/varchar\(\s*([89]\d{3}|\d{5,})\s*\)/

这已经转义了大括号\(...\)和可选空格\s*以及您的关键字varchar

于 2012-10-29T22:04:03.467 回答