6

私はこれを行うSQLフォーマッターを探しています:

INSERT INTO MyTable (col1, col2, col3, col4)
VALUES (
   1, -- col1
   2, -- col2
   3, -- col3
   4  -- col4
)

無料のオンラインSQLフォーマッターのいずれにもこの機能が見つからないようですが、十分に調べていない可能性があります。したがって、質問です。確かにそのようなものは存在します-またはそうでない場合は、私が自分でそれを書いてみたくなるほど単純に見えます...

ここでこれを行うことの価値について確信が持てない人にとっては、(多くの)実際の挿入の1つです-インラインコメントなしで値が何を表すかを判断するのは非常に困難です(そして行ごとに1つの値を持つことも有用です):

INSERT INTO ForecastAcqControl
(   ForecastImageServiceId, LayerId, Style, IsForecast, IsTiled,
    LatSW, LongSW, LatNE, LongNE, PixelsWidth, PixelsHeight, ZoomLevels,
    TimeCoverageHours, TimeStepMinutes, UpdateIntervalMinutes, CreatedDT
)
VALUES
(
    1,                  -- ForecastImageServiceId: OBSERVATIONS
    1,                  -- LayerId: RADAR_UK_Composite_Highres
    NULL,               -- Style
    FALSE,              -- IsForecast
    FALSE,              -- IsTiled
    47,                 -- LatSW
    -15,                -- LongSW
    61,                 -- LatNE
    5,                  -- LongNE
    1000,               -- PixelsWidth
    1200,               -- PixelsHeight
    4,                  -- ZoomLevels
    -2,                 -- TimeCoverageHours
    5,                  -- TimeStepMinutes
    5,                  -- UpdateIntervalMinutes
    UTC_TIMESTAMP()         -- CreatedDT
);
4

3 に答える 3

2

ついに、これを自分で行うためのユーティリティの作成に取り掛かりました。(振り返ってみると、正規表現は最善の方法ではなかったかもしれませんが、最終的にはそこに到達しました!)

ツールはここにあります:SQL Insert Commenter

かなりの量のテストを行いましたが、うまくいかないことがあるので、それを試している人が何か問題を知らせてくれたらありがたいです...

于 2012-09-27T23:09:34.127 に答える
1

このような特定のカスタム フォーマットを実行するユーザー環境は見たことがありません。

同様の効果を得るには、別の構文を使用したほうがよい場合があります...

INSERT INTO
  ForecastAcqControl (
    ForecastImageServiceId, LayerId, Style, IsForecast, IsTiled, LatSW,
    LongSW, LatNE, LongNE, PixelsWidth, PixelsHeight, ZoomLevels, TimeCoverageHours,
    TimeStepMinutes, UpdateIntervalMinutes, CreatedDT
  ) 
SELECT
  ForecastImageServiceId =     1,
  LayerId                =     1,
  Style                  =  NULL,
  etc, etc

ただし、この方法を手動で採用することは依然として強制されます。

于 2012-08-08T10:58:45.010 に答える
0

次のようにフォーマットすると、MSSQL でこれを行うことができます。

INSERT INTO MyTable (col1, col2, col3, col4)
VALUES (
   1 --  col1
   ,2 -- col2
   ,3 -- col3
   ,4 -- col4
)

上記のことはMySql、次の方法で行うことができます。

 INSERT INTO MyTable (col1,col2,col3,col4)
                  values('1'  #col1
                         ,'2' #col2
                         ,'3' #col3
                         ,'4' #col4
                        );

私はsqlfiddleでテストしました.... http: //sqlfiddle.com/#!2/88eb8/1をチェックしてください

于 2012-08-08T10:38:08.587 に答える