1

MySQLからSQLServer(2005)テーブルを作成するために使用するSQLダンプファイルがあります。

SQL Server 2005の最大値であるvarchar(8000)より大きい列宣言をvarchar(max)に変更する必要があります。

Visual Basicスクリプトを使用して、ダンプファイルを解析し、これらの変更を加えています。ファイル全体を文字列として見るだけです。8000を超える場合にのみ変更したいのですが、どうすればよいかわかりません。その番号が宣言の中にあるかどうかを確認して変更する方法はありますか?宣言内の数値を見つけるために正規表現を作成しました。しかし、私は言う方法を知りません:

varchar(int> 8000)に一致するすべての文字列について、varchar(max)に変更します。

4

1 に答える 1

1

8000より大きい(または等しい)数値に一致する正規表現:/^([89]\d{3}|\d{5,})$/

ここ/で、は正規表現の区切り文字であり、その後に開始(^)が続き、その後(...|...)に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 に答える