SQL Server 2016新特性:DROP IF EXISTS

原文:SQL Server 2016新特性:DROP IF EXISTS

??

在我们写T-SQL要删除某个对象(表、存储过程等)时,一般会习惯先用IF语句判断该对象是否存在,然后DROP,比如:

旧版本:

IF OBJECT_ID(‘dbo.PERSON‘,‘U‘) IS NOT NULL
DROP TABLE PERSON

IF EXISTS (SELECT * FROM sys.objects where name = ‘PERSON‘)
DROP TABLE PERSON

SQL Server 2016简化了这一操作,通过下面一句简洁的SQL即可实现:

新版本(SQL Server 2016):

DROP TABLE  IF EXISTS PERSON

DROP IF EXISTS的语法如下:

DROPobject_type
IFEXISTSobject_name

能够用于DROP的object_type,如Tables, Database, Function, Trigger, Stored Procedure, Column, User, Type, View, Schema,皆可套用,比如:

ALTER TABLE PERSON
DROP COLUMN If EXISTS NAME

原文地址:https://www.cnblogs.com/lonelyxmas/p/8397429.html

时间: 2024-12-31 06:19:17

SQL Server 2016新特性:DROP IF EXISTS的相关文章

SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表)

原文:SQL Server ->> 深入探讨SQL Server 2016新特性之 --- Temporal Table(历史表) 作为SQL Server 2016(CTP3.x)的另一个新特性,Temporal Table(历史表)记录了表历史上任何时间点所有的数据改动.Temporal Table其实早在ANSI SQL 2011就提出了,而SAP HANA, DB2和Oracle早已在它们的产品中加入/实现了这一特性.所以说微软其实是落后了几个竞争对手.既然在CTP3.0中加入了,相信

SQL Server ->> SQL Server 2016新特性之 --- Query Store

前言 SQL Server 2016引入新的查询语句性能监控.调试和优化工具/功能 -- Query Store.以前我们发现一条查询语句性能突然下降,我们要去找出问题的所在往往需要通过调用一些DMV(比如sys.dm_exec_query_stats, sys.dm_exec_sql_text和sys.dm_exec_query_plan)来获取查询计划的一些信息,比如XML格式的执行计划,查询语句的代码,执行了多少次以及一些资源和时间的的使用消耗情况.然后根据这些信息来判断这条语句是否存在性

SQL Server ->> SQL Server 2016新特性之 -- Dynamic Data Masking

Dynamic Data Masking是为了防止敏感数据暴露给未经授权的用户,以一种最小开销和维护成本的形式.Dynamic Data Masking用于表的字段,相当于盖住字段数据的一部分.比如一些像邮件或者工资这样敏感的数据,涉及PII的,我们可以运用这个功能.运用这个功能的步骤,首先先定义一组人(database role)可以拥有看数据的权限,然后GRANT UNMASK权限给这个角色组.微软提供了4种类型的masking给我们选择:default,email,random和custo

SQL Server 2016新特性:Live Query Statistics

SSMS可以提供可以查看正在执行的计划.live query plan可以查看一个查询的执行过程,从一个查询计划操作到另外一个查询计划操作.live query plan提供了整体的查询运行进度和操作级别的执行统计信息,比如产生的行数,执行的时间,操作进度等等.因为这些数据是实时的,不需要等待查询完成,这些统计信息对调试查询性能问题很有用.这个特性从SQL Server 2016开始,但是在2014上也可以运行了. Remark 到SQL Server 2016,有2个方法开启Statistic

SQL Server 2016新特性:In-Memory OLTP

存储格式修改 在2014,2016中修改了内存优化表的存储格式,新的格式是序列的并且the database is restarted once during database recovery. ALTER TABLE日志优化,并且可以并发运行 当你在内存优化表执行ALTER TABLE,只有元数据的修改会被写入日志.这样减少了大量的日志.并且很多ALTER TABLE是并行的,这样可以减少语句运行的时间 但是如果包含LOB,就不能并行运行 统计信息 优化表的统计信息可以自动更新.另外可以通过

SQL Server 2016新特性:列存储索引新特性

行存储表可以有一个可更新的列存储索引,之前非聚集的列存储索引是只读的. 非聚集的列存储索引支持筛选条件. 在内存优化表中可以有一个列存储索引,可以在创建表的时候创建,也可以在之后的alter table语句上创建.之前内存优化表不支持列存储索引. 聚集的列存储索引可以有多个非聚集行存储索引,之前列存储索引不支持非聚集索引. 支持在聚集列存储索引上加入主键和外键约束,约束使用btree索引. 列聚集索引有一个压缩延迟选项,让事务复合收到的影响最小. 兼容级别为120,130的数据库性能: 列存储索

SQL Server 2016新特性:数据库级别配置

新的  ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL) 用来配置数据库级别配置. 这个语句可以配置每个数据库的配置: 清理过程cache 设置MAXDOP参数,可以配置primary和secondary 设置查询优化器的评估模式 启动和关闭数据库级别的参数嗅探 启动和关闭数据库级别的查询优化补丁 启动和关闭数据库级别的identity cache 语法: ALTER DATABASE SCOPED CONFIGURATION { {  [ F

SQL Server 2016新特性:Temporal Table

什么是系统版本的Temporal Table 系统版本的Temporal Table是可以保存历史修改数据并且可以简单的指定时间分析的用户表. 这个Temporal Table就是系统版本的Temporal Table因为每行的有效期由系统托管的. 每个Temporal Table有2个显示定义的列,类型是datetime2.这些用来表示有效期.这个列用来标记这个行是不是在期间内可用. 除了上面的period列,l临时表也包含了引用到其他表,系统使用这个表来保存行修改删除前的行版本.这个附加表可

22. SQL -- SQL Server 2005 和SQL Server 2008新特性

SQL SERVER 2005 与SQL SERVER 2008 新特性   SQLSERVER 2005 新特性 Enhanced Data Types:存储最大8K-2G Partitioned Table(分区表):数据拆分管理 背景:一个公司,有目前现存数据以及历史数据,各在一台SER 上,服务器访问方式: SQL 2000 TABLE 1:在一张table 中,对数据进行分区 Enhanced Indexing Features SER 1 SER 2 现存数据 TABLE 1 TAB