Существует ли синтаксис INSERT, который позволяет визуальную симметрию между столбцами и значениями? - PullRequest
1 голос
/ 06 апреля 2020

(обычный) INSERT синтаксис выглядит следующим образом (без учета личного выбора разрывов строк / размещения в скобках):

INSERT INTO MyTable (
  Col1,
  Col2,
  ...
) VALUES (
  @value1,
  @value2
  ...
)

Поскольку связь между столбцом и значением основана на индексе в как бы два разных списка, это может стать громоздким, если у вас много столбцов. Если вам нужно что-то изменить, вы можете изменить неправильный столбец или рискнуть вставить значение для Col15 в Col16 и наоборот, потому что оба были совместимых типов и, следовательно, запрос выполняется без проблем.

Ранее я «обходил» это так:

INSERT INTO MyTable ( Col1,  SomeCol2,  Col3WithLongName,  Col4, ...)
             VALUES (@col1, @someCol2, @col3WithLongName, @col4, ...)

Это, конечно, имеет свои проблемы в том, что строки могут становиться очень длинными (и это не так). особенно интересно вручную выравнивать код).

В идеале я бы хотел UPDATE -подобный синтаксис для INSERT, который AFAIK невозможен, но выглядел бы примерно так:

INSERT INTO MyTable (
  Col1 = @value1,
  Col2 = @value2,
  ...
)

Здесь связь между столбцом и значением сразу очевидна. Я знаю, что в T- SQL часто есть несколько разных синтаксисов для одной и той же вещи, но я не нашел синтаксиса INSERT с таким качеством (чистое сопоставление столбца / значения).

Есть ли INSERT синтаксис, который имеет это качество, по крайней мере, в большей степени?

(Если это актуально, я в основном задаюсь вопросом об этом в контексте MERGE.)

...