【发布时间】:2011-05-05 08:14:37
【问题描述】:
我正在尝试从一个表中选择一些字段并将它们插入到存储过程中的现有表中。这是我正在尝试的:
SELECT col1, col2
INTO dbo.TableTwo
FROM dbo.TableOne
WHERE col3 LIKE @search_key
我认为SELECT ... INTO ... 用于临时表,这就是为什么我收到dbo.TableTwo 已经存在的错误。
如何将dbo.TableOne 中的多行插入dbo.TableTwo?
【问题讨论】:
-
既然您已经接受了答案,我只想提供一个说明:Select Into 不是“用于临时表”,而是用于根据结构(和数据) 查询的选择部分。对于表 X,您最多只能选择 1 次*,之后您需要使用 Insert Into 来追加任何数据。 *如果表已经存在,则为零次。当然,除非您先 DROP 表。
-
但请注意 Select Into 不会复制索引/主键/外键约束,因此它会为您留下未索引的堆数据。它对快速开发工作很有用,但不是添加/移动真实生产表的方式。
-
只要运行这个语句'drop table tabletwo;'并运行上面的查询。 Select ...into 不适用于临时表。
标签: sql sql-server tsql stored-procedures