SQL常用短语小记-持续更新

创建链接服务器语句

--//创建链接服务器【在本地服务器创建】  

exec sp_addlinkedserver '链接服务器名称','','SQLOLEDB','远程服务器地址' 

-- exec sp_addlinkedserver '链接服务器名称','','SQLOLEDB','远程地址'(版本不同时在远程地址处加上远程地址sql版本)   

--//登录链接服务器  

EXEC sp_addlinkedsrvlogin '链接服务器名称','false',null,'登录名',密码'

创建只读副本的服务器链接 --主要用于开始了sql2012 always on功能的情况,在访问只读数据库副本的时候,需要在连接串中增加“MultipleActiveResultSets=True;ApplicationIntent=ReadOnly”,否则无法进行查询

Data Source=只读副本地址;Initial Catalog=数据库名称;MultipleActiveResultSets=True;ApplicationIntent=ReadOnly

查询字段中是否包含中文内容 --方法有多种,这一种感觉比较简单

SELECT *

  FROM 表名

 WHERE 需要检索的字段 not LIKE '%[吖-座]%'

取每个分组最大的一行数据

--示例

select a.* from tb a where val = (select max(val) from tb where name = a.name) order by a.name 

tb:表

val:需要判断最大值的字段

name:分组依据

表索引相关

--查询表索引密度情况

DBCC SHOWCONTIG('表名') --如果是默认的dbo架构,可以去掉引号,直接在小括号中写表名,如果为dbo以外架构,需要带上单引号,带架构名

 主要关注扫描密度、逻辑扫描碎片、平均页密度

扫描密度:数据量较大的表一般保持在80%↑即可,实际计数5000+可算做数据量较大的表;

逻辑扫描碎片:越低越好,一般重构索引后保持在15%↓,这个可以理解为已经失效的索引碎片垃圾,每次进行查询的时候会连同碎片一起过滤,浪费资源、降低数据库效率;

平均页密度:比例越高越好,数据量较大的表一般保持在80%↑即可;

--索引重构

DBCC DBREINDEX('表名','索引名',重构目标密度) --

索引名:如果是需要重构表的所有索引,索引名可以不填写(引号需保留)

重构目标密度:需要重构密度达到的值,例如写90,即需要重构后密度达到90%

快速插入并新建同结构的临时表 --先按照原始表结构,新建一个临时表,再将表中所有数据插入该临时表

SELECT * INTO 临时表名 FROM 原始表名

--脚本加密

该加密方法暂时无法用于表脚本,适用于存储过程、视图、函数等

在AS关键字前加入 WITH ENCRYPTION语法,然后执行脚本即可,下次重新登陆数据库则会显示一个小锁标志,代表已加密文本。

原文地址:https://www.cnblogs.com/airlinp/p/12360680.html