6

我正在寻找可以执行此操作的 SQL 格式化程序:

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

我似乎在任何免费的在线 SQL 格式化程序中都找不到此功能,尽管可能是我看起来不够努力 - 因此提出了这个问题。肯定存在这样的事情 - 或者如果不是它看起来很简单,我很想尝试自己写一个......

对于任何不相信这样做的价值的人来说,这里是(许多)实际插入之一 - 很难在没有内联注释的情况下说出这些值代表什么(并且每行有一个值也很有用):

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 回答