随笔分类 - SQL Server
SQL Server CLR 使用 C# 自定义存储过程和触发器
摘要:这一篇博客接着上一篇博客继续介绍 SQL CLR Stored Procedure 和 CLR Trigger, 上一篇博客介绍了 SQL CLR Function 的使用,以及 CLR 程序集的注册和 CLR Function 的注册。 我的上一篇博客:SQL Server CLR 使用 C# 自
阅读全文
SQL Server CLR 使用 C# 自定义函数
摘要:一、简介 Microsoft SQL Server 2005之后,实现了对 Microsoft .NET Framework 的公共语言运行时(CLR)的集成。CLR 集成使得现在可以使用 .NET Framework 语言编写代码,从而能够在 SQL Server 上运行,现在就可以通过 C# 来
阅读全文
SQL Server 一些使用小技巧
摘要:1、查询的时候把某一个字段的值拼接成字符串 以下是演示数据。 第一种方式:使用自定义变量 这种方法有一个好处就是,拼接出来的字符串可以赋值给变量或直接插入表中指定字段,可以适用于存储过程之类的。 第二种方式:转换为 XML 格式 使用这种方式有一个缺点就是,不能直接赋值给变量或插入表,适用于查看时使
阅读全文
SQL Server 排序的时候使 null 值排在最后
摘要:最近遇到一个 SQL Server 排序的问题,以前也没了解过,然后这次碰到了。 才发现 SQL Server 排序的问题,在指定的排序列中 null 值会默认排在最前面,因为在 SQL Server 中 null 值默认为最小值。 后来问了一下万能的百度,找到了下面一种比较简单的处理方法。 首先建
阅读全文
SQL Server 常用函数使用方法(持续更新)
摘要:之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行。。。嘿嘿。。。 直到今天用到substring()这个函数,C# 里面这个方法起始值是 0,而 SQL 里面起始值是 1。傻傻分不清楚。。。 这篇博客作为记录 SQL 的函数的使用方法,想到哪里用到哪里就写到哪里。。。 SubStrin
阅读全文
SQL Server 公用表表达式(CTE)实现递归
摘要:公用表表达式简介: 公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集。CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效。与派生表的不同之处在于,公用表表达式 (CTE)
阅读全文
SQL Server 使用 Hierarchyid 操作层次结构数据
摘要:层次结构数据定义为一组通过层次结构关系互相关联的数据项。 在层次结构关系中,一个数据项是另一个项的父级或子级。 sql server2008开始内置的 hierarchyid 数据类型使存储和查询层次结构数据变得更为容易。hierarchyid 其实是 CLR 数据类型。 废话不多说,看不明白就实际
阅读全文
SQL Server 表分区之水平表分区
摘要:什么是表分区? 表分区分为水平表分区和垂直表分区,水平表分区就是将一个具有大量数据的表,进行拆分为具有相同表结构的若干个表;而垂直表分区就是把一个拥有多个字段的表,根据需要进行拆分列,然后根据某一个字段进行关联。 表分区分为以下五个步骤: 1、创建文件组 2、创建数据文件 3、创建分区函数 4、创建
阅读全文
SQL Server 使用 Pivot 和 UnPivot 实现行列转换
摘要:对于行列转换的数据,通常也就是在做报表的时候用的比较多,之前也零零散散的看了一些,今天就来总结一下。 先创建一个用于演示的临时表: 下面来实现一些需求: 需求一,按年份分组,不同的月份为一列。 另外两种方法: 返回的结果都是一样的,可以看见这几种方法都是可以实现的(当然,可能还有更多的方法待发掘),
阅读全文
SQL Server 创建索引(index)
摘要:索引的简介: 索引分为聚集索引和非聚集索引,数据库中的索引类似于一本书的目录,在一本书中通过目录可以快速找到你想要的信息,而不需要读完全书。 索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 。 但是索引对于提高查询性能也不是万能的,也不是建立越多的索引就越
阅读全文
SQL Server 创建游标(cursor)
摘要:游标的定义: 游标则是处理结果集的一种机制,它可以定位到结果集中的某一行,也可以移动游标定位到你所需要的行中进行操作数据。与 select 语句的不同是,select 语句面向的是结果集,游标面向的是结果集的行。 游标其实可以理解成一个定义在特定数据集上的指针,我们可以控制这个指针遍历数据集,或者仅
阅读全文
SQL Server DDL触发器
摘要:DDL 触发器作用: DDL 触发器主要用于防止对数据库架构、视图、表、存储过程等进行的某些修改。 DDL 触发器事件: DDL 触发器在创建用来监视并响应该数据库或服务器实例中的活动的事件通知时,可以指定相应事件类型或事件组。 超链接:DDL 事件 和 DDL 事件组 DDL 触发器类别: DDL
阅读全文
SQL Server 使用触发器(trigger)发送电子邮件
摘要:sql 使用系统存储过程 sp_send_dbmail 发送电子邮件语法: 参数参考地址:https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transac
阅读全文
SQL Server 创建触发器(trigger)
摘要:触发器简介: 触发器是一种特殊的存储过程,它的执行不是由程序调用,也不是手动执行,而是由事件来触发。触发器是当对某一个表进行操作。例如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。 触发器分类: 1、DML( 数据操纵语言 Data Manipula
阅读全文
SQL Server创建事务——锁
摘要:参考地址:http://www.cnblogs.com/knowledgesea/p/3714417.html 事务定义: 事务是作为单个逻辑单元执行的一系列操作,它是一个不可分割的工作逻辑单元。它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。 举个例子,我们经常用到的 ATM 存
阅读全文
SQL Server创建视图——视图的作用
摘要:视图简介: 视图可以看作定义在SQL Server上的虚拟表。视图正如其名字的含义一样,是另一种查看数据的入口。 常规视图本身并不存储实际的数据,而仅仅是由SELECT语句组成的查询定义的虚拟表 。 从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样
阅读全文
SQL Server创建存储过程——动态SQL
摘要:简介: 存储过程(stored procedure)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行。 自定义存储过程,由用户创建并能完成某一特定功能的存储过程,存储过程既可以有参数又有返回值,但是它与函数不同,存储过程的返回值只是指明执
阅读全文
SQL Server WITH ROLLUP、WITH CUBE、GROUPING语句的应用
摘要:CUBE:CUBE 生成的结果集显示了所选列中值的所有组合的聚合。 ROLLUP:ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。 GROUPING:当行由 CUBE 或 ROLLUP 运算符添加时,该函数将导致附加列的输出值为 1;当行不由 CUBE 或 ROLLUP 运算符添加时
阅读全文
SQL Server窗口框架——ROWS、RANGE
摘要:说到窗口框架就不得不提起开窗函数。 开窗函数支持分区、排序和框架三种元素,其语法格式如下: 窗口分区: 就是将窗口指定列具有相同值的那些行进行分区,分区与分组比较类似,但是分组指定后对于整个SELECT语句只能按照这个分组,不过 分区可以在一条语句中指定不同的分区。 1 <PARTITION BY
阅读全文
SQL Server outer apply 和 cross apply
摘要:先说点题外话,因为后面我会用到这个函数。 前两天自定义了一个 sql 的字符串分割函数(Split),不过后来发现有点问题,例如: 我之前只处理了截取的最后一个为空的字符串,所以会出现以上的结果,现在我做了一些修改。代码如下: 红色部分的代码为添加或修改的部分,下面再看一下效果。 之前自定义 Spl
阅读全文