もっと良い方法がありそうだが、とりあえず現状の手順をメモ。
Notepad++ の正規表現で整形する。
"テーブルをスクリプト化" のメニューでINSERT文を作成する。
INSERT INTO [TESTDB].[dbo].[TESTTABLE_A]
([TESTCOLUMN_A]
,[TESTCOLUMN_B])
VALUES
(<TESTCOLUMN_A, nchar(10),>
,<TESTCOLUMN_B, nchar(10),>)
GO
C#で複数行のリテラル文字列を生成するには、2通りの方法がある(参考)
@を利用する場合は、鍵括弧の置換まで手順を飛ばせる。
(algさんにコメント欄で教えて頂きました。ありがとうございました)
なんからの理由で、+記号で文字列を結合したい場合は、以下の置換から作業を行う。
正規表現で、行頭のスペースを削除する。最後の行のGOは不要なので削除。
検索文字列: ^\s
置換文字列: (空)
INSERT INTO [TESTDB].[dbo].[TESTTABLE_A]
([TESTCOLUMN_A]
,[TESTCOLUMN_B])
VALUES
(<TESTCOLUMN_A, nchar(10),>
,<TESTCOLUMN_B, nchar(10),>)
行頭に +" を追加する
検索文字列: ^
置換文字列: +"
+"INSERT INTO [TESTDB].[dbo].[TESTTABLE_A]
+"([TESTCOLUMN_A]
+",[TESTCOLUMN_B])
+"VALUES
+"(<TESTCOLUMN_A, nchar(10),>
+",<TESTCOLUMN_B, nchar(10),>)
行末に スペースと " を追加する。スペースは好みで改行文字にしてもいい。
検索文字列: $
置換文字列: "(スペースと")
+"INSERT INTO [TESTDB].[dbo].[TESTTABLE_A] "
+"([TESTCOLUMN_A] "
+",[TESTCOLUMN_B]) "
+"VALUES "
+"(<TESTCOLUMN_A, nchar(10),> "
+",<TESTCOLUMN_B, nchar(10),>) "
鍵括弧を、string.Formatのフォーマット文字列のパラメータにする
検索文字列: <.*>
置換文字列: '{}'
+"INSERT INTO [TESTDB].[dbo].[TESTTABLE_A] "
+"([TESTCOLUMN_A] "
+",[TESTCOLUMN_B]) "
+"VALUES "
+"('{}' "
+",'{}') "
先頭の+記号を、変数に変える。
検索文字列: +
置換文字列: const string formatString =
(1行目のみの置換)
const srting formatString ="INSERT INTO [TESTDB].[dbo].[TESTTABLE_A] "
+"([TESTCOLUMN_A] "
+",[TESTCOLUMN_B]) "
+"VALUES "
+"('{}' "
+",'{}') "
Visual Studio のテキストエディタに貼りつけて、末尾に ; を付けて自動整形させる
(自分はReSharperを利用しているため、;の付与が自動整形になります)
const string formatString = + "INSERT INTO [TESTDB].[dbo].[TESTTABLE_A] "
+ "([TESTCOLUMN_A] "
+ ",[TESTCOLUMN_B]) "
+ "VALUES "
+ "('{}' "
+ ",'{}') ";
フォーマット文字列のパラメータに手動で数字を記入
const string formatString = +"INSERT INTO [TESTDB].[dbo].[TESTTABLE_A] "
+ "([TESTCOLUMN_A] "
+ ",[TESTCOLUMN_B]) "
+ "VALUES "
+ "('{0}' "
+ ",'{1}') ";