Ответ 1
SELECT... INTO предназначен для создания новых таблиц.
Используйте INSERT... SELECT для существующих таблиц. например:
INSERT INTO my_table
SELECT columna, columnb,
FROM my_other_table
WHERE (... conditions ...)
У меня есть таблица пользователей. Я хочу вставить данные в таблицу пользователя.
У меня есть утверждение:
SELECT columna, columnb,
INTO my_table
FROM my_other_table
WHERE (... conditions ...)
Я получаю следующую ошибку:
SQL Server Error on (myserver) Error:2714 at Line:1 Message:There is already an object named 'my_table' in the database.
Да, спасибо Sybase. Я знаю это. Я знаю, что таблица существует. Я хочу вставить в него данные.
Почему Sybase не играет хорошо?: (
(Sybase не является моей сильной стороной, Oracle - это может быть просто проблема понимания или отсутствие там. Это никогда не произойдет в Oracle...)
SELECT... INTO предназначен для создания новых таблиц.
Используйте INSERT... SELECT для существующих таблиц. например:
INSERT INTO my_table
SELECT columna, columnb,
FROM my_other_table
WHERE (... conditions ...)
Вы пробовали это так?
Insert INTO my_table
SELECT columna, columnb,
FROM my_other_table
WHERE (... conditions ...)
Похоже, что он пытается неявно создать новую таблицу для вас, называемую my_table.
Не уверен в SYBASE, но в DB2 это работает для меня
INSERT INTO my_table
(
columna,
columnb
)
SELECT
columna,
columnb
FROM
my_other_table
WHERE
(... conditions...)
Я думаю, что более безопасно указывать столбцы в инструкции insert, а не предполагать, что они будут в том же порядке, что и select.
Используйте "существующее" ключевое слово после "в" для вставки в существующую таблицу.
SELECT [COLUMN LIST] INTO EXISTING [TABLE NAME]