Синтаксическая ошибка SQL-запроса - помогите - PullRequest
0 голосов
/ 02 декабря 2010

Мой запрос возвращает синтаксическую ошибку:

Неверное имя объекта 'table.clientinfo'.

Вот мой запрос:

INSERT table.clientinfo (name, addr, entry, affiliate ) 
SELECT name, addr, entry, affiliate FROM table.clientinfo WHERE product = 5

Это ошибка из-зафункция вставки не находит 'clientinfo', так как она не существует.

Кто-нибудь может дать мне правильный синтаксис для создания таблицы перед ее заполнением из функции выбора?

Ответы [ 3 ]

1 голос
/ 02 декабря 2010

Вы хотите CREATE TABLE

CREATE TABLE clientinfo (
         name VARCHAR(100)
         addr VARCHAR(100)
         entry VARCHAR(100)
         affiliate VARCHAR(100)
       );

с конкретными типами / размерами для вашего приложения. Вы также можете указать внешние и первичные ключи, ограничения и т. Д.

0 голосов
/ 02 декабря 2010

В SQL Server, если вы хотите выбрать и вставить в новую таблицу, используйте этот синтаксис:

SELECT name, addr, entry, affiliate 
INTO (new table name)
FROM [table.clientinfo] 
WHERE product = 5

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

Если ваше имя таблицы действительно содержит точку (действительно очень плохая практика!), То вы ДОЛЖНЫ поставить имя таблицы в квадратных скобках: FROM [table.clientinfo]

Кроме того, при выполнении SELECT .. INTO ... вы не можете выбрать из существующей таблицы и вставить в ту же существующую таблицу - вам нужно использовать новое имя таблицы для вашей целевой таблицы.

0 голосов
/ 02 декабря 2010

Вы должны использовать

INSERT INTO [tablename] (field1, field2, ... , fieldx)
SELECT ...

Или, если вы хотите создать другие данные напрямую:

SELECT field1, field2, ... , fieldx
INTO newTable
FROM oldtable
WHERE ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...