永利皇宫登录网址欢迎您!

永利皇宫登录网址 > 数据库知识 > select语句的使用方法

select语句的使用方法

时间:2020-04-22 22:46

sql insert select语句的使用方法

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

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

USE pubsINSERT INTO MyBooks SELECT title_id, title, type FROM titles WHERE type = 'mod_cook'子查询的选择列表必须与 INSERT 语句列的列表匹配。如果没有指定列的列表,选择列表必须与正向其插入的表或视图的列匹配。

INSERT...SELECT 语句的另一个作用是从 Microsoft SQL Server 的外部数据源插入数据。INSERT 语句中的 SELECT 可以:

使用由四部分组成的名称引用链接服务器上的远程表。有关更多信息,请参见使用链接服务器名标识数据源。

使用 OPENROWSET 引用远程表。有关更多信息,请参见使用特殊名称标识数据源。

7 CREATE TABLE Customers (8 CustomerID nchar (5) NOT NULL ,9 CompanyName nvarchar (40) NOT NULL ,10 ContactName nvarchar (30) NULL ,11 ContactTitle nvarchar (30) NULL ,12 Address nvarchar (60) NULL ,13 City nvarchar (15) NULL ,14 Region nvarchar (15) NULL ,15 PostalCode nvarchar (10) NULL ,16 Country nvarchar (15) NULL ,17 Phone nvarchar (24) NULL ,18 Fax nvarchar (24) NULL19 )20 GO123 INSERT INTO Customers (CustomerID, CompanyName) SELECT '1', 'Bam Bam'4 GO

(1 rows affected)12 select * from Customers;3 GOCustomerID CompanyName ContactName ContactTitle Address City Region PostalCode Country Phone Fax---------- ----------------------------------------




------------------------ ------------------------1 Bam Bam NULL NULL NULL NULL NULL NULL NULL NULL NULL

(1 rows affected)12 drop table Customers;3 GO

实例

3 INSERT INTO BillingArchive4 (BankerID, BillingNumber, BillingTotal, CreditTotal,5 PaymentTotal, TermsID, BillingDate, BillingDueDate)6 SELECT7 BankerID, BillingNumber, BillingTotal, CreditTotal,8 PaymentTotal, TermsID, BillingDate, BillingDueDate9 FROM Billings10 WHERE BillingTotal - PaymentTotal - CreditTotal = 011 GO

也可以利用存储过程处理

3 CREATE PROCEDURE spIns_Employee4 @FirstName nVarChar(50),5 @LastName nVarChar(25),6 @Salary Money7 AS8 INSERT INTO Employee (ID, First_name, last_Name, Salary)9 SELECT 10, @FirstName, @LastName, @Salary10 GO1 spIns_Employee 'Gadget', 'Bond', 49.952 GO

上一篇:语句搞定数据库分页 下一篇:SERVER的一些安全问题