SQL Server SELECT INTO详解

 1203浏览

SELECT INTO语句不向调用者返回结果集,而是创建一个包含查询结果集的新表。通过SELECT INTO创建的新表沿用查询结果集的列名称、数据类型、可空性以及IDENTITY属性。但不复制源的约束、索引、触发器。如若需要沿用源的索引、约束和触发器,那么必须在执行完SELECT INO语句后再添加。

如果你的目的只是得到源的空副本,SELECT INTO是个很好的选择。你不需要编写CREATE TABLE语句。

SELECT INTO使用方法

set nocount on;
use tempdb;
go
if OBJECT_ID('dbo.MyOrders') is not null drop table dbo.MyOrders;
go
select * into dbo.MyOrders from Northwind.dbo.Orders where 1=2

Northwind数据库的下载和安装,请看这篇文章:northwind数据库下载、安装教程

以上sql语句复制了源表Northwind.dbo.Orders列名称、数据类型、可空性以及IDENTITY属性,那么如果我仅仅只需要列名称、数据类型、可空性,不需要IDENTITY属性,该怎么写SELECT INTO呢?

set nocount on;
use tempdb;
go
if OBJECT_ID('dbo.MyOrders') is not null drop table dbo.MyOrders;
go
select 
	OrderID+0 as OrderID,CustomerID,EmployeeID,OrderDate,RequiredDate,ShippedDate,ShipVia,Freight,ShipName,ShipAddress,ShipCity,ShipRegion,ShipPostalCode,ShipCountry
into 
	dbo.MyOrders from Northwind.dbo.Orders where 1=2

使语句OrderID+0 as OrderID就不会向列中复制IDENTITY属性了。

流行热度:超过1203次围观
生产日期:2016-03-20 21:30:09
上次围观:2016-09-16 05:01:11
转载时必须以链接形式注明原始出处及本声明。