SQL Server 2017 SELECT…INTO 创建的新表指定到文件组
SELECT…INTO 在 SQL Server 中也是常见的一个功能,过去用此方法创建的新表只能存储到默认的文件组,但是 SQL Server 2017 可以创建到指定的文件组中。
使用 SELECT…INTO 需要了解的地方:
SELECT...INTO 为大容量操作,大容量操作是最小日志记录操作;
使用 SELECT... INTO 语句可以是比创建表,然后填充具有 INSERT 语句的表更高效;
启用事务复制时,将完全记录 SELECT INTO 操作,即使处于大容量日志恢复模式下;
不能使用 SELECT…INTO 创建分区表;
SELECT...INTO 不使用源表的分区方案;
源表中定义的索引、约束和触发器不会转移到新表中;
指定 ORDER BY 子句无法确保按指定顺序插入行;
稀疏列属性不会转移到新表中的列;
当选择列表中包含计算列时,新表中的相应列并不是计算列;
在选择现有标识列并将其插入到新表时,新列将继承 IDENTITY 属性;除非以下条件中的一个为真,列将被创建为 NOT NULL 而不继承 IDENTITY 属性:
1. SELECT 语句包含一个联接。
2. 多个 SELECT 语句由 UNION 联接。
3. 标识列在选择列表内多次列出。
4. 标识列是表达式的一部分。
5. 标识列来自远程数据源。
测试 SELECT…INTO 创建的新表指定到文件组:
--创建测试数据
use master
go
create database Demo
go
use Demo
go
create table Test(
id int not null identity(1,1),
userName varchar(50),
addTime datetime constraint df_addtime default(getdate())
) on [primary]
go
--插入100行数据
set nocount on
insert into Test(userName) select 'kk'+convert(varchar(10),@@identity)
go 100
set nocount off
go--创建文件组及文件
alter database Demo add filegroup fg;
go
alter database Demo
add file
(name='fg_data',filename = 'D:\SQLServer\Data2017/Demo1.mdf'
)
to filegroup fg;
go--注意:SELECT…INTO 创建的新表指定到文件组
select *
into newTest on fg
from Test
go--查看结果:
SELECT tbl.name AS TableName,fg.name AS [FileGroupName],CAST(p.rows AS float) AS [RowCount]
FROM sys.tables AS tbl
INNER JOIN sys.indexes AS idx ON idx.object_id = tbl.object_id and (idx.index_id < 2 or (tbl.is_memory_optimized = 1 and idx.index_id = (select min(index_id) from sys.indexes where object_id = tbl.object_id)))
INNER JOIN sys.partitions AS p ON p.object_id=CAST(tbl.object_id AS int) AND p.index_id=idx.index_id
LEFT OUTER JOIN sys.destination_data_spaces AS dds ON dds.partition_scheme_id = idx.data_space_id and dds.destination_id = p.partition_number
LEFT OUTER JOIN sys.filegroups AS fg ON fg.data_space_id = dds.data_space_id or fg.data_space_id = idx.data_space_id
WHERE (p.partition_number=1)
go
参考: https://docs.microsoft.com/zh-cn/sql/t-sql/queries/select-into-clause-transact-sql
转载于:https://www.cnblogs.com/lonelyxmas/p/8358478.html
SQL Server 2017 SELECT…INTO 创建的新表指定到文件组相关推荐
- Win7 X64 SQL SERVER 2000企业管理器无法建立新表
现象是点建立新表后是个空白窗口 解决方案: 点住某已有表(可以是系统表)再选择建立新表,然后OK了 PS:这个估计是某个系统BUG吧
- SQL Server 2017的逐步安装
介绍 (Introduction) The new SQL Server 2017 comes with new features in the installation. It now suppor ...
- linux配置conf_如何使用mssql-conf和其他可用工具在Linux上配置SQL Server 2017
linux配置conf Configuration of any system plays a vital role in its working efficiently. However, conf ...
- dmv io读写高的sql_适用于DBA的前8大新(或增强)SQL Server 2017 DMV和DMF
dmv io读写高的sql Dynamic management views (DMVs) and dynamic management functions (DMFs) are system vie ...
- SQL Server 2017 新功能分享
本篇文章是我在MVP直通车分享的关于SQL Server 2017的新功能,现在ppt分享如下,可以点击这里下载. 转载于:https://www.cnblogs.com/CareySon/p/SQL ...
- 使用SQL Server 2017 Docker容器在.NET Core中进行本地Web API开发
目录 介绍 先决条件 最好事先知道 假设 动机 跨平台 快速安装 经济有效 不同版本/多个实例 速度 持久性 找到SQL Server 2017镜像并在本地下载它 在没有卷挂载的情况下在本地执行SQ ...
- 在SQL Server 2017上充分利用Python
介绍 (Introduction) One of the new features announced with SQL Server 2017 is support for the Python l ...
- 如何在SQL Server 2017中实现图形数据库
介绍 (Introduction) Graph database 图形数据库 A graph database is a type of database whose concept is based ...
- SQL Server 2017:mTVF的交错执行
In this post, we are going to look at the new feature in SQL Server 2017 – interleaved execution. Yo ...
最新文章
- 浅谈https\ssl\数字证书
- oracle期末重点,oracle期末复习题及答案
- VTK修炼之道54:图形基本操作进阶_表面重建技术(三角剖分)
- 网易云信亮相WOT, 打造“IM+连麦互动直播”云服务
- MybatisPlus添加操作
- jquery 字符串查找_Python Appium 库IOS特有元素查找API介绍
- opencv 运动追踪_足球运动员追踪-使用OpenCV根据运动员的球衣颜色识别运动员的球队
- 信息技术与计算机文化的问题,信息技术与计算机文化
- 一台服务器装两个sql server 如何访问吗_服务器多网卡多路由策略
- copula函数(高斯copula函数)
- S32K1XX系列单片机 ——(1)开发环境搭建
- lpush rpush 区别_redis中lpush、rpush、lset、lrem是什么
- 程序设计思维与实践 Week15 作业
- DiskGenius无法分区
- 【数学模型】基于Volterra理论的捕食模型
- Android App开发动画特效中遮罩动画的讲解及实战演示(附源码 简单易懂 可直接使用)
- 裸奔的智能插座:博联Broadlink SP2/SP mini的分析、破解
- IDEA-自定义常用代码块
- 最大不相交子集 POJ1328
- 数据包结构(IVI,NID,CTL,TTL,SEQ,SRC,DST,TransPDU,NetMIC)