如何用SQL语句向一个表中插入多行记录

如何用SQL语句向一个表中插入多行记录,第1张

insert一般是用来给表插入一条指定的列值的,但是,insert还存在另一种形式,可以利用它将一条select语句的结果插入表中。

这就是所谓的insert select,顾名思义,它是由一条insert语句和一条select语句组成的。假如你从另一张表中合并客户列表到你的Custumers表,不需要每次读取一行,然后再将它用insert插入,可以如下进行:

insert into Custumer(cust_id,

cust_cintact,

cust_name,

cust_email,

cust_address,

cust_country)

select cust_id,

cust_cintact,

cust_name,

cust_email,

cust_address,

cust_country

from CustNew

扩展资料

insert select中的列名为简单起见,这个例子在insert和select语句中使用了相同的列名,但是,不一定要求列名匹配。事实上,DBMS甚至不关心select返回的列名,它使用的是列的位置。

因此,select中的第一列(不管其列名)将用来填充表列中的指定的第一个列,第二列将用来填充表列中指定的第二个列,如此等等。

SQLSERVER里面可以采用下面两种办法。使用SELECT INTO 插入行SELECT INTO 语句创建一个新表,并用 SELECT 的结果集填充该表。新表的结构由选择列表中表达式的特性定义,例如:SELECT Shippers.*, Link.Address, Link.City,Link.Region, Link.PostalCodeINTO NewShippersFROM ShippersJOIN LinkServer.DB.dbo.Shippers AS LinkON (Shippers.ShipperID = Link.ShipperID)SELECT INTO 可将几个表或视图中的数据组合成一个表。也可用于创建一个包含选自链接服务器的数据的新表。使用INSERT...SELECT 插入行INSERT 语句中的 SELECT 子查询可用于将一个或多个其它的表或视图的值添加到表中。使用 SELECT 子查询可同时插入多行。下面的 INSERT 语句将 titles 中数据的 type 是 modern cooking 的所有行的数据插入到一个单独的表中:USE pubsINSERT INTO MyBooksSELECT title_id, title, typeFROM titlesWHERE type = 'mod_cook'子查询的选择列表必须与 INSERT 语句列的列表匹配。如果没有指定列的列表,选择列表必须与正向其插入的表或视图的列匹配。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9930270.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存