
SQL SERVER
文章平均质量分 71
hzp666
这个作者很懒,什么都没留下…
展开
-
SQL获取字段中的数字
sql获取数字:只是将字符串中所有的数字组织在一起,比如“test12tt456”,返回的是12456create function dbo.F_Get_Number (@S varchar(100))returns intAS begin while PATINDEX('%[^0-9]%',@S)>0 begin set @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')转载 2021-05-24 13:22:29 · 6936 阅读 · 0 评论 -
SQL中使用EXISTS 代替in的用法
我们在程序中一般在做SQL优化的时候讲究使用EXISTS带替代IN的做法,理由是EXISTS执行效率要比IN高。 之前我一直挺懵懂的一件事情是如何使用EXISTS来替换IN呢,二者表示的意义又是什么呢?今天就我个人理解记录一下 IN表示范围,指某一字段在某一范围之内,这个范围一般使用子查询来获取,由此可知IN子查询返回的结果应该就是这个范围集。 EXISTS表示存在,指至少存在一处,这个条件由EXISTS子查询来完成,但是在这里EXISTS子查询返回的结果却不再是一个结果集,而是一个布尔值(tr转载 2021-04-21 16:41:37 · 1051 阅读 · 0 评论 -
SQL中EXCEPT、INTERSECT
EXCEPT是指在第一个集合中存在,但是不存在于第二个集合中的数据。(selectA) EXCEPT (select B)INTERSECT返回 两个结果集的交集(即两个查询都返回的所有非重复值)UNION返回两个结果集的并集。union all 返回两个结果集的并集,并去重注意:(1)所有查询中的列数和列的顺序必须相同。(2)比较的两个查询结果集中的列数据类型可以不同但必须兼容。(3)比较的两个查询结果集中不能包含不可比较的数据类型(xml、text、n...原创 2021-03-22 17:32:08 · 9277 阅读 · 0 评论 -
sql server将字符串转换为 uniqueidentifier 时失败
sql server将字符串转换为 uniqueidentifier 时失败sql server查询中出现将字符串转换为 uniqueidentifier 时失败异常原因为id设置为uniqueidentifier 字段,在where查询时需要做转换cast(id as varchar(36)),例如select * from test wherecast(id as varchar(36)) in('2946a572-7dbf-4ab8-a9d2-0374797eac7f','46bc35..转载 2020-12-15 17:55:46 · 10928 阅读 · 0 评论 -
SQL的开窗函数
引用在开窗函数出现之前存在着非常多用 SQL 语句非常难解决的问题,非常多都要通过复杂的相关子查询或者存储过程来完毕。为了解决这些问题,在2003年ISO SQL标准增加了开窗函数,开窗函数的使用使得这些经典的难题能够被轻松的解决。眼下在 MSSQLServer、Oracle、DB2 等主流数据库中都提供了对开窗函数的支持,只是非常遗憾的是 MYSQL 临时还未对开窗函数给予支持。开窗函数说明开窗函数与聚合函数一样,也是对行集组进行聚合计算,但是它不像普通聚合函数那样每组只返回一个值,开窗函数可转载 2020-12-01 17:59:09 · 229 阅读 · 0 评论 -
SQL中开窗函数first_value() 和 last_value()
first_value()和last_value()字面意思已经很直观了,取首尾记录值。例:查询部门最早发生销售记录日期和最近发生的销售记录日期select dept_id ,sale_date ,goods_type ,sale_cnt ,first_value(sale_date) over (partition by dept_id order by sale_date) first_value ,last_v...转载 2020-12-01 17:54:58 · 8005 阅读 · 0 评论 -
SqlServer分页查询
文章目录 这篇博客讲的是SQL server的分页方法,用的SQL server 2012版本。下面都用pageIndex表示页数,pageSize表示一页包含的记录。并且下面涉及到具体例子的,设定查询第2页,每页含10条记录。 首先说一下SQL server的分页与MySQL的分页的不同,mysql的分页直接是用limit (pageIndex-1),pageSize就可以完成,但是SQL server 并没有limit关键字,只有类似limit的top关键字。所以分页起来比较麻烦。 ...转载 2020-11-27 16:03:07 · 7818 阅读 · 3 评论 -
性能优化工具:SQL Profiler
https://www.cnblogs.com/kissdodog/p/3398523.html一、SQL Profiler工具简介SQL Profiler是一个图形界面和一组系统存储过程,其作用如下:图形化监视SQL Server查询; 在后台收集查询信息; 分析性能; 诊断像死锁之类的问题; 调试T-SQL语句; 模拟重放SQL Server活动;也可以使用SQL Profiler捕捉在SQL Server实例上执行的活动。这样的活动被称为Profiler跟踪。 1、Pro转载 2020-11-19 11:18:32 · 682 阅读 · 0 评论 -
SSAS介绍
文章提纲 商业智能(BI, Business Intelligence)基本概念 SSAS(SQL Server Analysis Services)相关工具(开发、管理和客户端) 总结 一、商业智能(BI, Business Intelligence)基本概念商业智能的概念在1996年最早由加特纳集团(Gartner Group)提出,加特纳集团将商业智能定义为:商业智能描述了一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定。商业智能技术提供使企业.转载 2020-11-10 14:32:37 · 7758 阅读 · 0 评论 -
SQL server的书签查找
书签查找这个词可能对于很多开发人员比较陌生,很多人都遇到过,但是却没引起足够的重视以至于一直都忽略它的存在了。我们先来看一下书签查找的定义和重要性: 书签查找定义 当查询优化器使用非聚集索引进行查找时,如果序列所选择的列或查询条件中的列只部分包含在使用的非聚集索引和聚集索引中时,就需要一个查找(lookup)触发器来检索其他字段来满足请求。对一个有聚簇索引的表来说是一个键查找(keylookup),对一个堆表来说是一个RID查找(RIDlookup),这种查找即是——书签查找(bookmarkl转载 2020-11-06 16:49:06 · 607 阅读 · 0 评论 -
sql:函数:COALESCE()
COALESCE()函数主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下:COALESCE ( expression,value1,value2……,valuen)COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。如果expression不为空值则返回expression;否则判断value1是否是空值,如果v..转载 2020-11-04 10:00:33 · 749 阅读 · 0 评论 -
SqlServer中sql执行顺序
对于一条Sql语句(主要指的是查询语句)的执行顺序,很多开发人员并不是十分的了解,哪怕已经工作几年的所谓高级开发人员也是一样,对于他们来说,只关心最终得到的结果,并不关心中间的过程,那么了解SqlServer的语句执行过程到底有什么用处的?1、如果不了解执行过程,下面的Sql语句你认为结果是一样的吗?select * from Customers AS Cleft join Orders AS OOn C.customerid=O.customeridand C.customeri.转载 2020-10-26 15:03:55 · 943 阅读 · 2 评论 -
去掉SqlServer中字段包含的回车、换行、回车换行符
注意:特殊字符在Sql Server Management Studio查询中显示为空格,但实际不是空格。在C#中能清晰的看到类似:\r\n的字符.SQL中可以使用Replace函数来对某个字段里的某些字符进行替换操作,语法如下:语法REPLACE ( original-string, search-string, replace-string )参数如果有某个参数为 NULL,此函数返回 NULL。original-string 被搜索的字符串。可为任意长度。searc...原创 2020-09-21 14:21:11 · 9235 阅读 · 0 评论 -
SQLserver自动优化器Profiler
今天要说的这个优化神器就是SQL Server管理工具自带的Profiler,它到底神在哪里呢?SQL ServerProfiler是什么SQL Server Profiler是一个界面,用于创建和管理跟踪并分析和重播跟踪结果。这些事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件进行分析或用它来重播一系列特定的步骤。同时也可以利用它来对跟着文件进行分析,分析完成后会给出优化建议。SQL Server Profiler的使用下面我将一步一步以图片+文字解说的方式告诉大家该如何使用..转载 2020-08-25 09:47:56 · 1696 阅读 · 0 评论 -
SQLserver中的锁
一. 为什么要引入锁多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统脏读A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致不可重复读A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做...转载 2020-08-13 18:59:05 · 1332 阅读 · 0 评论 -
SQLserver中执行计划的名词解释Table Scan, Index Scan, Index Seek
原文:https://www.cnblogs.com/xwdreamer/archive/2012/07/06/2579504.htmlSql Server中的表访问方式Table Scan, Index Scan, Index Seek0.参考文献Table Scan, Index Scan, Index SeekSQL SERVER – Index Seek vs. Index Scan – Diffefence and Usage – A Simple Noteoracle表.转载 2020-08-13 18:37:25 · 2297 阅读 · 0 评论 -
聚集索引与非聚集索引----二
聚集索引与非聚集索引的总结一.索引简介众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引。这篇文章会总结SQL Server以及MySQL的InnoDB和MyISAM两种SQL的索引。SQL Sever索引类型有:唯一索引,主键索引,聚集索引,非聚集索引。MySQL 索引类型有:唯一索引,主键(聚集)索引,非聚集索引,全文索引。二.聚集索引聚集(clustered)索引,也叫转载 2020-08-13 18:33:16 · 164 阅读 · 0 评论 -
SQLserver的Always On 可用性组
本主题介绍用于在Always On 可用性组中配置和管理一个或多个可用性组的核心SQL Server 2019 (15.x)概念。有关可用性组提供的优势的摘要和Always On 可用性组术语的概述,请参阅AlwaysOn 可用性组 (SQL Server)。可用性组支持的复制环境适用于一组离散用户数据库,称为“可用性数据库” 。可以创建可用性组以实现高可用性 (HA) 或读取缩放。HA 可用性组是一组共同实现故障转移的数据库。读取缩放可用性组是一组复制到其他 SQL Server ...原创 2020-08-12 19:00:06 · 2157 阅读 · 0 评论 -
旧版本-数据库镜像概述
“数据库镜像**”是用于提高数据库可用性的主要软件解决方案。镜像基于每个数据库实现,并且只适用于使用完整恢复模式的数据库。简单恢复模式和大容量日志恢复模式不支持数据库镜像。因此,所有大容量操作始终被完整地记入日志。数据库镜像可使用任意支持的数据库兼容级别。数据库镜像概述 注意: 不能镜像master、msdb、tempdb或model数据库。 数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的 SQL Server 数据库引擎实例(服务器实例)上。通常,这些服务器实例驻留在...转载 2020-08-12 18:58:56 · 395 阅读 · 0 评论 -
SQL server执行计划
本篇主要目的有二:1、看懂t-sql的执行计划,明白执行计划中的一些常识。2、能够分析执行计划,找到优化sql性能的思路或方案。如果你对sql查询优化的理解或常识不是很深入,那么推荐几骗博文给你:SqlServer性能检测和优化工具使用详细,sql语句的优化分析,T-sql语句查询执行顺序。执行计划简介1、什么是执行计划?大哥提交的sql语句,数据库查询优化器,经过分析生成多个数据库可以识别的高效执行查询方式。然后优化器会在众多执行计划中找出一个资源使用最少,而不是最快的执行方案,.转载 2020-08-09 08:00:35 · 376 阅读 · 0 评论 -
浅谈SQL Server中的三种物理连接操作(Nested Loop Join、Merge Join、Hash Join)
简介 在SQL Server中,我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge Join,Hash Join这三种物理连接中的一种。理解这三种物理连接是理解在表连接时解决性能问题的基础,下面我来对这三种连接的原理,适用场景进行描述。嵌套循环连接(Nested Loop Join) 循环嵌套连接是最基本的连接,正如其名所示那样,需要进行循环嵌套,这种连接方式的过程...转载 2020-08-06 18:58:04 · 2081 阅读 · 2 评论 -
MST
1.备份:热备:本地备份:https://blog.youkuaiyun.com/hzp666/article/details/81671246原创 2020-08-06 18:07:08 · 561 阅读 · 0 评论 -
Truncate和Delete的区别
1、表和索引所bai占空间。当表被truncate后,这个表和索引所占du用的空间会恢复到初始zhi大小,delete操作不dao会减少表或索引所占用的空间。2、应用范围。truncate只能对table;delete可以是table和view。3、truncate和delete只删除数据,drop则删除整个表(结构和数据)。4、delete语句为dml(datamaintainlanguage),这个操作会被放到rollbacksegment中,事务提交后才生效。如果有相应的...转载 2020-07-30 22:25:03 · 627 阅读 · 0 评论 -
row_number() over partition by 分组聚合
row_number() over partition by 分组聚合分组聚合,就是先分组再排序,可以的话顺手标个排名;如果不想分组也可以排名;如果不想分组同时再去重排名也可以ROW_NUMBER() OVER( [PARTITION BY column_1, column_2,…] [ORDER BY column_3,column_4,…])Oracle和SQL server的关键字是over partition bymysql的无关键字row_num转载 2020-07-30 17:45:37 · 1751 阅读 · 0 评论 -
exists与in比较
SQL中EXISTS的用法比如在Northwind数据库中有一个查询为SELECT c.CustomerId,CompanyName FROM Customers cWHERE EXISTS(SELECT OrderID FROM Orders o WHERE o.CustomerID=c.CustomerID)这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是.转载 2020-06-17 22:17:47 · 568 阅读 · 0 评论 -
SQL server和postgresql差异
数据类型数字类型Sql serverNumeric/decimal精确数值型 从-10 的38 次方-1,到10 的38 次方-1bit整型 其值只能是0、1 或空值int整型 -2 的31 次方到 2 的31 次方smallint整型 -2 的15 次方到 2 的15 次方tinyint0 到255 之间的整数float浮点数real...转载 2019-12-18 17:11:05 · 4531 阅读 · 0 评论 -
各个join区别
在数学中,笛卡尔乘积是指两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X×Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。MySQL中笛卡尔积相当于我们...转载 2019-10-28 10:13:15 · 1265 阅读 · 0 评论 -
sql server中的 SET NOCOUNT ON 的含义
sql server中的 SET NOCOUNT ON 的含义每次我们在使用查询分析器调试SQL语句的时候,通常会看到一些信息,提醒我们当前有多少个行受到了影响,这是些什么信息?在我们调用的时候这些信息有用吗?是否可以关闭呢? 答案是这些信息在我们的客户端的应用程序中是没有用的,这些信息是存储过程中的每个语句的DONE_IN_PROC 信息。 我们可以利用SET转载 2017-07-10 14:50:41 · 504 阅读 · 0 评论 -
SQL SERVER存储过程
SQL Server 存储过程的几种常见写法分析,我们该用那种写法本文出处: http://www.cnblogs.com/wy123/p/5958047.html 最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫,不知道各种写法孰优孰劣,该选用那种写法,以及各种写法优缺点,本文以一个简单的查询存储过程为例,简单说一下各种写转载 2017-07-10 17:11:06 · 680 阅读 · 0 评论 -
SQL SERVER中cast()函数
本文导读:CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。一、语法:CAST (expression AS data_type)参数说明:expression:任何有效的SQServer表达式。AS:用于分隔两个参数,在AS之前的是要处理的数据转载 2017-07-10 17:17:17 · 1950 阅读 · 0 评论 -
SQL中的cast 和convert的区别,日期操作
SQL Server 日期格式和日期操作SQL Server发展至今,1、关于日期的格式的控制方法,有传统的方法,比如CONVERT(),也有比较便利的新方法,比如FORMAT(); eg: FORMAT(CAST(date AS DATE),'yyyy-MM') ps:年要用小写的yyyy, 月大写MM2、同样,关于日期的操作函数,也分为传统方法:DATEADD()等,...转载 2017-07-10 17:27:41 · 4416 阅读 · 0 评论 -
消息 245,(246)级别 16,状态 1,将varchar类型转黄成int型时失败
在数据库中,将sql语句拼接成一个字符串,其中有int型的数据拼接到一起,执行的时候就出现啦消息 245,级别 16,状态 1,第 66 行在将 varchar 值 '消息 245,级别 16,状态 1,第 65 行在将 varchar 值 'SELECT p.Br_Division_Code,COUNT(DISTINCT p.Staff_No) [人数],转载 2017-07-11 11:34:01 · 4466 阅读 · 0 评论 -
sql server复制表结构语法
1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表2.只复制表结构到新表CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2即:让WHERE条件不成立.方法二:(由tianshibao提供)CREATE TABLE 新表 LIKE 旧表3.复制旧表转载 2017-07-03 11:22:19 · 1008 阅读 · 0 评论 -
SQL server数据类型
bit 整型 bit数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或False 、On 或Off. 注意:很省空间的一种数据类型,如果能够满足需求应该尽量多用。 tinyint 整型 tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。这种数据类转载 2017-06-28 08:46:06 · 391 阅读 · 0 评论 -
SSAS的入门介绍
一、是什么? SSAS是用于SQLServer数据库用于BI的组件,通过SSAS可以创建多维数据库,并在之上进行数据挖掘操作。本文我们主要介绍一些关于SSAS数据分析的知识。接下来就让我们来一起了解一下吧。 商业智能提供的解决方案能够从多种数据源获取数据并且能够把各种数据转化成同一格式数据进行存储,最终达到让用户可以快速访问解读数据,为用户分析和制定转载 2017-07-20 16:06:17 · 1814 阅读 · 0 评论 -
SSIS入门介绍
在上一篇中简单的介绍了BI的整体框架,在接下来的几篇就是针对某个知识点简单讲解。首先我们就进入SSIS的学习。一、是什么?SSIS(SQL Server Integration Service)是微软的一个智能解决方案,通俗点和ASP.NET程序差不多,它也设计了很多的类似控件的东西,不过叫任务,这些任务的主要功能是将数据从数据源转到数据目的,中间也会有查询,聚合等等更转载 2017-07-20 16:26:07 · 52975 阅读 · 5 评论 -
实例讲解SSAS
俗话说的好“纸上得来终觉浅,绝知此事要躬行”,上一篇简单的介绍了一下SSAS,那么今天就通过实例来体会一下它的存在感。一、先决条件 所谓的先决条件就是必备的组件、示例和工具 (1)SQL Server数据库引擎(SQL Server 2012自带) (2)AnalysisServices(SQL Server 2012自带转载 2017-07-20 16:33:35 · 1104 阅读 · 0 评论 -
Integration Services包部署常见问题汇总
Integration Services 包在部署过程中,经常会出现这样那样的问题,让人摸不着头脑,很是烦人。下面我就将我在部署过程中,遇到的一些问题整理出来,以供大家参考。 (一)SSIS包在SQL Server Business Intelligence Development Studio环境中运行正常,通过DTExecUI.exe 运行也正常,可是一旦部署到Sql Serve转载 2017-07-17 16:17:36 · 3090 阅读 · 0 评论 -
Integration Services包部署常见问题汇总 2
问题产生:DTS建好后,运行-->成功导入数据,这个DTS包导数据的作业是系统自动建立的,因为在建DTS包的时候设置了调度时间,所以系统自动创建了该作业,但明明运行DTS成功了,在管理-->Sqlserver代理-->作业里显示失败,而且手动执行作业,也同样失败。。。 产生原因:手动运行DTS包时的帐户为你操作数据库的当前帐户,在作业里运行DTS包时,依赖于sqlserve转载 2017-07-17 16:19:25 · 794 阅读 · 0 评论 -
SSIS包配置
Integrartion Services 包实际上就是一个对象属性的集合,在前面我们开发的所有 Integration Services包,其中的变量、属性,比如:数据库链接、同步文件目录等,我们都直接在包中用一个常量的方式,赋给这些变量或者属性,这就给这个包的发布与移置,带来很大的麻烦,比如我们在开发环境中开发包的时候,所有变量与属性都是按照开发环境来来进行设置,开发完成后,要将这个包部署到生转载 2017-07-17 16:21:30 · 14197 阅读 · 0 评论