Я уже некоторое время работаю с T-SQL в MS SQL и почему-то всякий раз, когда мне нужно вставить данные в таблицу, я обычно использую синтаксис:
INSERT INTO myTable <something here>
Я понимаю, что это ключевое слово INTO
здесь необязательно, и мне не нужно его использовать, но в моем случае оно каким-то образом вошло в привычку.
У меня вопрос:
- Есть ли какие-то последствия использования
INSERT
синтаксиса по сравнению сINSERT INTO
? - Какой полностью соответствует стандарту?
- Действительны ли они оба в других реализациях стандарта SQL?
sql
sql-server
tsql
Кристоф
источник
источник
Это одно и то же,
INTO
совершенно необязательно в T-SQL (другие диалекты SQL могут отличаться).В отличие от других ответов, я думаю, что это ухудшает удобочитаемость
INTO
.Я думаю, что это концептуальная вещь: на мой взгляд, я не вставляю строку в таблицу с именем «Клиент», а вставляю клиента . (Это связано с тем, что я использую для имен своих таблиц в единственном, а не во множественном числе).
Если вы будете следовать первой концепции,
INSERT INTO Customer
она, скорее всего, «подойдет» вам.Если вы последуете второй концепции, скорее всего, она
INSERT Customer
вам подойдет.источник
Это может быть необязательно в mySQL, но обязательно в некоторых других СУБД, например Oracle. Таким образом, SQL будет более потенциально переносимым с ключевым словом INTO, чего бы оно ни стоило.
источник
Один урок, который я извлек из этой проблемы, заключается в том, что вы всегда должны сохранять последовательность! Если вы используете INSERT INTO, не используйте INSERT. Если вы этого не сделаете, некоторые программисты могут снова задать тот же вопрос.
Вот еще один связанный с этим пример: у меня была возможность обновить очень-очень длинную хранимую процедуру в MS SQL 2005. Проблема в том, что в таблицу результатов было вставлено слишком много данных. Мне нужно было выяснить, откуда пришли данные. Пытался узнать, где были добавлены новые записи. В начале раздела SP я увидел несколько INSERT INTO. Затем я попытался найти "INSERT INTO" и обновил их, но я пропустил одно место, где использовалось только "INSERT". Он фактически вставил 4k + строк пустых данных в некоторые столбцы! Конечно, мне нужно просто поискать INSERT. Однако это случилось со мной. Виноват предыдущий программист ИДИОТ :) :)
источник
В SQL Server 2005 у вас может быть что-то среднее между INSERT и INTO, например:
Хотя он работает без INTO, я предпочитаю использовать INTO для удобства чтения.
источник
Они оба делают одно и то же. INTO не является обязательным (в SQL Server T-SQL), но способствует удобочитаемости.
источник
Я предпочитаю его использовать. Он поддерживает то же синтаксис оконтуривающие чувствовать и читаемость , как и другие части языка SQL, как
group BY
,order BY
.источник
Я начал писать SQL в ORACLE, поэтому, когда я вижу код без INTO, он выглядит «сломанным» и сбивает с толку.
Да, это всего лишь мое мнение, и я не говорю, что вы всегда должны использовать INTO. Но если вы этого не сделаете, вы должны знать, что многие другие люди, вероятно, подумают о том же, особенно если они еще не начали писать сценарии с новыми реализациями.
Я думаю, что с SQL также очень важно понимать, что вы добавляете СТРОКУ в ТАБЛИЦУ, а не работаете с объектами. Я думаю, что для нового разработчика было бы бесполезно думать о строках / записях таблицы SQL как об объектах. Опять же, только мое мнение.
источник
Если возможно, используйте стандартную функцию. Не то чтобы вам когда-либо требовалась переносимость для вашей конкретной базы данных, но, скорее всего, вам потребуется переносимость для ваших знаний SQL. Конкретный неприятный пример T-SQL - использование isnull, use coalesce!
источник