Именование элементов в предложении Value для удобства чтения - PullRequest
0 голосов
/ 18 февраля 2020

Есть ли лучший способ добиться сопоставления элементов в values с именами столбцов. Я всегда делаю это, используя комментарии:

insert into Table1 (Col1, Col2, ..., Coln)
values ('One' /* Col1 */, 'Two' /* Col2 */, ..., 'ValN' /* Coln */);

Это становится особенно важным, когда задействовано много столбцов и в предложении values ​​есть запросы. Мне всегда приходится считать и видеть, какой элемент в предложении values для какого столбца. Поэтому я просто использую комментарии, как показано выше. Я констатирую очевидное, что иногда, в зависимости от запроса, я могу держать их в отдельных строках.

Любым другим способом?

1 Ответ

0 голосов
/ 18 февраля 2020

Ваш хороший способ. Я обычно использую одну строку для каждого столбца. Это может быть очень долго, но я нахожу это более читабельным. Примерно так:

insert into Table1 (
 Col1 
,Col2 
,...
,Coln
)
values (
 One  /* Col1 */ 
,Two  /* Col2 */ 
,... 
,ValN /* Coln */
);

В некоторых случаях полезно использовать строку JSON. В других случаях это может быть излишним. Вот простой пример:

Допустим, у нас есть таблица с именем «test» с двумя столбцами: «Number» (INT) и «Word» (VARCHAR (40))

Мы можем вставить записи в этой таблице, используя следующую конструкцию:

INSERT INTO test (Number, Word)
  SELECT source.Number, source.Word
  FROM
  (
  SELECT  Number, Word
      FROM
      OpenJson('[{
    "number": 01,  "word": "This"
  }, {
    "number": 02,  "word": "Is"
  }, {
    "number": 03,  "word": "Just"
  }, {
    "number": 04,  "word": "a"
  }, {        
    "number": 05,  "word": "Test"
  }] '
  ) WITH (Number INT '$.number', Word VARCHAR(40) '$.word') 

  ) AS source

Как мы видим:

  1. Данные для вставки хранятся в строке JSON. Затем мы присваиваем имя каждому свойству в строке JSON, используя те же имена столбцов в таблице.
  2. При фактической вставке имена значений для вставки являются переменными, имена которых совпадают с именами столбцов. , делая его очень читабельным. (source.Number, source.Word).

В некоторых случаях использование строки JSON может помочь не только с отображением данных и их столбцов, но и отладкой данных и поиском неправильные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...