SQL Server 维护着一个叫做buffer cache的东西, 在buffer cache中SQL Server 读取必须被取回的data pages. 数据在修改时并不是直接写到磁盘上的, 而是写在buffer cache中原本在磁盘上的对应数据页的拷贝中. 修改什么时候落盘呢? 答案是在checkpoint发生的时候, 或者是当修改必须被写回到磁盘上之后buffer cache才可以腾出空间用来放新的页面的时候. 把buffer cache中被修改了的数据写回到盘上的过程叫做flush…
SQL Server对数据进行修改,修改数据库中的数据. auto"> <tr style="background:red"> <td>编号</td> <td>书名</td> <td>价格</td> <td>喜爱度</td> <td>作者</td> <td>删除</td> <td>修改</td>…
前言 在操作数据库的时候经常会用到判断数据表.视图.函数/方法.存储过程是否存在,若存在,则需要删除后再重新创建.以下是MS SQL Server中的示例代码. 数据表(Table) 创建数据表的时候判断数据表是否存在,若存在则删除,会经常使用,特别是初始化的时候. --方法一 /*判断数据表是否存在,若存在则删除数据表*/ IF EXISTS (SELECT * FROM sys.objects WHERE name = 'Table_Name') DROP TABLE Table_Name;…
1.表和索引存储结构 在SQL Server2005以前,一个表格是以一个B树或者一个堆(heap)存放的.每个B树或者堆,在sysindexes里面都有一条记录相对应.SQL Server2005以后,引入了分区表的概念(Table Partition),在存储组织上,现有的分区基本上替代了原来表格的概念,原先表的概念成为了一个逻辑概念.一个分区就是一个B树或者一个堆.而一张表格则是一个到多个分区的组合. 1.1用B树存储于聚集索引的表数据页 如果一个表格上有聚集索引(Clustered In…
getdate()用例: 2008-12-29 16:25:46.635 1.创建时间:将字段设置为datetime类型,并设置默认值为 getdate() 2.修改时间:通过触发器,在 update After后,使用如下语句实现:update tableName set columnName=getdate() from tableName 相关参考: http://stackoverflow.com/questions/22594567/sql-server-on-update-set-c…
sql中我们偶尔会用到对数据进行合并,但其中的某一列数据要进行合并的操作: 如下图,一个用户有多个角色ID,如果我们想要统计一个用户有哪些角色,并且以单列的展现形式,单纯的用DISTINCT去掉肯定是不行的 我们可以用下面的sql语句进行拼接,对数据进行合并: SELECT g.UserID, (),f.RoleID) +'-' FROM ( SELECT UserID,RoleID FROM dbo.SC_User_Role) f WHERE f.UserID=g.UserID FOR XML…
根据表名查找数据约束 SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'CMS_EventLog'; SELECT TABLE_NAME , COLUMN_NAME , CONSTRAINT_NAME -- <<-- the one you want! FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'tbm_cti_CustomT…
1.查询语句不用区分大小写,而且即使每张表的表名或者列名出现大写字母,在写查询语句的时候也不用区分大小写,查询结果保持一致,所以查询语句小写即可. 2.在写查询语句的时候列名不需要带单引号,数值型的字符串不用带引号,需要带引号的是字符型和汉字型的字符串. 3.如果既要用到group by子句,也要用到order by子句,需要先使用group by子句,然后使用order by子句,否则查询会报错. 4.在查询语句中无group by子句时,order by 子句不能与聚集函数同时使用.聚集函数…
简介 每一个SQL Server的数据库都会按照其修改数据(insert,update,delete)的顺序将对应的日志记录到日志文件.SQL Server使用了Write-Ahead logging技术来保证了事务日志的原子性和持久性.而这项技术不仅仅保证了ACID中的原子性(A)和持久性(D),还大大减少了IO操作,把对数据的修改提交到磁盘的工作交给lazy-writer和checkpoint.本文主要讲述了SQL Server修改数据时的过程以及相关的技术. 预写式日志(Write-Ahe…
在SQL Server中实现关系模型的阶梯到级别3的t -SQL DML 格雷戈里·拉森(Gregory Larsen),2017/08/02(第一次出版:2011 /11/09) 原文链接:http://www.sqlservercentral.com/articles/Stairway+Series/75775/ 该系列 本文是系列的一部分:T-SQL的进阶 这个进阶将为您提供一个基本的理解,即如何使用SQL Server的transact - SQL(t - SQL)方言对SQL Serv…