Msg 156, уровень 15, состояние 1, строка 23 неверный синтаксис рядом с ключевым словом "from".
У меня есть запрос. Что я получаю сообщение об ошибке "Msg 156, Уровень 15, состояние 1, строка 23
Неверный синтаксис рядом с ключевым словом" FROM". " он указывает на запрос "из [TOMSQLVISION].[VISION_2020].[REAL_PROP].[VW_HSALE]." Этот запрос извлекает данные из 1 sql server и создает таблицу на другом sql server. Затем заполняет веб-страницу.
1 DROP TABLE [dbo].[VISION_SALEHIST4] 2 SELECT 3 4 MNC, 5 PID, 6 LINE_NUM, 7 BOOK_PG, 8 CONVERT(datetime, SALEDATE) AS SALEDATE, 9 SALEPRICE, 10 CERTIFICATE, 11 INSTRUMENT, 12 QUALIFIED, 13 OWN_NAME, 14 CO_OWN_NAME, 15 ADDRESS1, 16 ADDRESS2, 17 CITY, 18 STATE, 19 ZIP 20 21 INSERT INTO [dbo].[VISION_SALEHIST4] 22 23 FROM [TOMSQLVISION].[VISION_2020].[REAL_PROP].[VW_HSALE]
Что я уже пробовал:
Я подключен к другому серверу tomsqlvision. Таблица, из которой запрос извлекает данные, является таблицей представления. Будет ли это иметь значение?
Спасибо за помощь.
0x01AA
Думать о INSERT INTO <table> (<columns>) SELECT <columns> ... FROM ...
Читать это: SQL INSERT INTO оператор[^]
0x01AA
Читать это: SQL INSERT INTO оператор[^]
0x01AA
Извините какой-то Интер...что угодно... я имею в виду что-то вродеINSERT INTO [dbo].[VISION_SALEHIST4] (<columns>) SELECT <columns> FROM [TOMSQLVISION].[VISION_2020].[REAL_PROP].[VW_HSALE]
[Редактировать]
И DROP TABLE [dbo].[VISION_SALEHIST4]
это плохая идея без того, чтобы создать его снова, прежде чем пытаться вставить.
Либо вы создаете таблицу снова, либо вместо того, чтобы отбросить таблицу, вы делаете это DELETE FROM [dbo].[VISION_SALEHIST4]
Jassom
Сначала вы уронили таблицу ... а потом как бы вы вставили значения в уроненную таблицу???
0x01AA
Да ;)
Jassom
Удалить из [dbo].[VISION_SALEHIST4]
ГО
Вставить в [dbo].[VISION_SALEHIST4] ВЫБЕРИТЕ * ИЗ [TOMSQLVISION].[VISION_2020].[REAL_PROP].[VW_HSALE]
ГО
Примечание: это должны быть обе таблицы с одинаковыми столбцами и одинаковым порядком.
0x01AA
Цитата: "Примечание: обе таблицы должны иметь одинаковые столбцы и одинаковый порядок."
И да, и нет. Пока вы указываете каждый столбец для INSERT и (в том же порядке) для SELECT, по крайней мере, имена столбцов могут быть разными.
Напр.
будет работать.
INSERT INTO TBl1(col1, col2) SELECT(ColA, ColB) FROM TBl2
.. и, конечно же, типы столбцов должны совпадать.
Jassom
Да, в случае, если вы не будете использовать ( * ), вы можете выбрать конкретные столбцы, как вы сказали.
0x01AA
... что является обязательным в случае, если имена столбцов не совпадают ;)
Jassom
не имеет значения, если имена столбцов не совпадают.
В случае, если вы решите использовать ( * ), только то, что должно соответствовать этим ниже:
1 - тип колонок.
2 - количество колонок.
но имена столбцов не имеют значения
0x01AA
нет
Jassom
Я попробовал.