Подтвердить что ты не робот

Что означает этот запрос?

Я читаю книгу о SQL.

В этой книге я увидел странный запрос ниже:

SELECT * into mycustomer from customer WHERE 1=2

В этом запросе, что такое "WHERE 1 = 2"?

4b9b3361

Ответ 1

Обычно используется для копирования структуры одной таблицы в другую, как в вашем случае.

SELECT * INTO mycustomer FROM customer WHERE 1=2

Этот код создает идентичную структуру таблицы Customer в вашей новой таблице MyCustomer. Примечание, что в SQL Server ограничения не копируются; поэтому, вероятно, вам нужно будет воссоздать ограничения.

Ответ 2

1=2 всегда будет false.

Это способ указать предложение WHERE, которое всегда будет оцениваться как false.

Аналогичная вещь WHERE 1=1, которая всегда оценивается как true.

Ответ 3

В прежние времена, когда я использовал классический ASP, я использовал структуру "WHERE 1 = 2" для извлечения определений столбцов таблицы, а не ее содержимого. В настоящее время существуют лучшие способы получения определений столбцов с использованием структуры сопоставления объектных отношений.

Я предполагаю, что читаемая вами книга немного устарела или контекст этого запроса неуместен.

Ответ 4

WHERE 1=2

Невозможно, чтобы условие всегда было ложным. Это опечатка? Может быть, это очистить нагрузку переменных? Поскольку SELECT INTO поместит все столбцы в @COLUMNNAME vars

Ответ 5

Это не что иное, как инъекция SQL в вашем случае, всегда будет false, если 1 = 1, чем его true, и вернет все данные Клиентов