15

我有一个用户表。我想将数据插入到我的用户表中。

我有一个声明:

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 中永远不会发生......)

4

4 回答 4

30

SELECT ... INTO 用于创建新表。

对现有表使用 INSERT ... SELECT。例如:

INSERT INTO my_table 
SELECT columna, columnb, 
FROM my_other_table
WHERE (... conditions ...)
于 2009-06-18T00:47:44.220 回答
4

你试过这种方式吗?

Insert INTO my_table
SELECT columna, columnb, 
FROM my_other_table
WHERE (... conditions ...)

它似乎正在尝试为您隐式创建一个名为 my_table 的新表。

于 2009-06-18T00:47:22.923 回答
1

不确定 SYBASE 但在 DB2 中这对我有用


 INSERT INTO my_table
 (
      columna,
      columnb
 )
 SELECT
      columna,
      columnb
 FROM
      my_other_table
 WHERE
      (... conditions...)

我认为在插入语句中指定列也更安全,而不是假设它们与选择的顺序相同。

于 2009-06-18T00:52:30.417 回答
0

在“into”之后使用“existing”关键字插入现有表。

SELECT [COLUMN LIST] INTO EXISTING [TABLE NAME]
于 2016-05-31T07:22:56.667 回答