我有一个来自MySQL的sql转储文件,我用它来创建SQL Server (2005)表。
我需要将大于varchar(8000)的列声明更改为varchar( max )。
我正在使用Visual Basic脚本解析转储文件并进行这些更改。它只是将整个文件看作一个字符串。我只想在数字大于8000的情况下更改,但我不知道如何更改。有没有办法检查声明中的数字并对其进行更改?我创建了一个正则表达式来查找声明中的数字。但我不知道该怎么说:
对于所有匹配varchar(int>8000)的字符串,更改为varchar(max)。
发布于 2012-10-30 06:04:03
匹配大于(或等于)8000的数字的正则表达式:/^([89]\d{3}|\d{5,})$/
其中,/
是正则表达式的分隔符,后跟start (^
),后跟((...|...)
) 8或9和3个数字([89]\d{3}
)或5个或更多数字(\d{5,}
),最后是字符串结尾($
)和正则表达式分隔符(/
)。
要在您的上下文中使用,像这样的东西应该可以做到…
/varchar\(\s*([89]\d{3}|\d{5,})\s*\)/
这包含转义大括号\(...\)
、可选空格\s*
和关键字varchar
https://stackoverflow.com/questions/13130205
复制相似问题