日期:2014-05-19  浏览次数:20664 次

SQL, insert into 后跟 select是什么意思?

例如如下SQL语句,请问是什么意思?  
declare   @tbl_temp   table(   sales_person_code   nvarchar(40)   )

insert   into   @tbl_temp  
select   distinct   sales_person_code   from   AS_SALES_PERSON_PRD_STDPRC   where   sales_person_code <> @sales_person_code

------解决方案--------------------
使用 INSERT...SELECT 插入行
INSERT 语句中的 SELECT 子查询可用于将一个或多个其它的表或视图的值添加到表中。使用 SELECT 子查询可同时插入多行。

下面的 INSERT 语句将 titles 中数据的 type 是 modern cooking 的所有行的数据插入到一个单独的表中:

USE pubs
INSERT INTO MyBooks
SELECT title_id, title, type
FROM titles
WHERE type = 'mod_cook '

子查询的选择列表必须与 INSERT 语句列的列表匹配。如果没有指定列的列表,选择列表必须与正向其插入的表或视图的列匹配。

------解决方案--------------------
create table a(aa int,bb char(2))

insert into a select 1, 'we '