随笔- 672
文章- 2
评论- 325
阅读-
281万
随笔分类 - Sql Server
SQL Server分区表,能否按照多个列作为分区函数的分区依据(转载)
摘要:问: Hi, I have a table workcachedetail with 40 million rows which has 8 columns.We decided to partition the table.Most of the queries in our environmen
阅读全文
锁不住的查询(转载)
摘要:最近在处理一个锁的问题时,发现一个比较郁闷的事,使用X锁居然无法锁住查询,模拟这个问题,可以使用如下T-SQL脚本来建立测试环境。 然后,建立一个连接,执行下面的脚本来实现加锁。 通过执行结果,可以看到对象被加锁的情况:表级和页级上是IX锁,记录上是X锁。 然后新建一个连接,执行下面的T-SQL查询
阅读全文
在英文Windows操作系统上使用SQL Server Management Studio(SSMS)导入Excel 97-2003文件时报错:Failure creating file
摘要:今天在公司服务器上使用SQL Server Management Studio(SSMS)导入Excel 97-2003文件(.xls)时报错: 错误截图: 这个报错的原因,是因为我们使用的是英文版Windows操作系统,但是我们的Excel文件(.xls)是放在一个中文路径下的: 后来我们将这个E
阅读全文
使用exec和sp_executesql动态执行SQL语句(转载)
摘要:当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句,个人觉得用得比较多的地方就是分页存储过程和执行搜索查询的SQL语句。一个比较通用的分页存储过程,可能需要传入表名,字段,过滤条件,排序等参数,而对于搜索的话,可能要根据搜索条件判断来动态执行SQL语句。 在SQL
阅读全文
SQL Server的JOIN是支持使用小括号修改执行顺序的
摘要:假如现在我们的SQL Server数据库中有三个表:[T_A]、[T_B]和[T_C],它们的建表语句如下: [T_A]、[T_B]和[T_C]每个表都只有一个INT类型的列,我们使用下面的语句给这三个表插入数据: 我们都知道默认情况下,SQL Server中的JOIN语句都是按表出现的顺序执行的,
阅读全文
SQL Server中NULL的一个测试
摘要:我们都知道SQL Server中NULL是一个很特殊的存在,因为NULL不会等于任何值,且NULL也不会不等于任何值。对于NULL我们只能使用IS或IS NOT关键字来进行比较。 我们先来看看下面一个SQL查询,由于NULL不会等于任何值,所以毫无疑问下面的查询会返回0: 输出结果: 那么如果我们在
阅读全文
SQL SERVER数据库修改是否区分大小写(转载)
摘要:昨天去客户,发现程序无法应用,跟踪错误提示,提示的大致意思是“数据库表名和数据库字段名不存在”。查询后发现是SQL Server数据库设置了区分大小写的缘故(一般安装时,Oracle的正确安装下是默认转换为大写;SQL Server数据库是不转换为大写,但是使用时并不区分大小写): 下面语句是设置S
阅读全文
Sqlserver内存管理:限制最大占用内存(转载)
摘要:一、Sqlserver对系统内存的管理原则是:按需分配,且贪婪(用完不还)。它不会自动释放内存,因此执行结果集大的sql语句时,数据取出后,会一直占用内存,直到占满机器内存(并不会撑满,还是有个最大限制,比机器内存稍小),在重启服务前,sqlserver不会释放该内存,也没有任何办法可人为释放。以下
阅读全文
SQL Server连接查询之Cross Apply和Outer Apply的区别及用法(转载)
摘要:先简单了解下cross apply的语法以及会产生什么样的结果集吧!示例表: 两张表直接连接,不需要任何的关联条件,产生的结果就是这两张表的笛卡尔积 相当于:select * from tableA,tableB与之对应的还有Outer Apply,下面讲解一下Cross Apply 和 Outer
阅读全文
SQL Server中UPDATE和DELETE语句结合INNER/LEFT/RIGHT/FULL JOIN的用法
摘要:在SQL Server中,UPDATE和DELETE语句是可以结合INNER/LEFT/RIGHT/FULL JOIN来使用的。 我们首先在数据库中新建两张表: [T_A] CREATE TABLE [dbo].[T_A]( [ID] [int] NOT NULL, [Name] [nvarchar
阅读全文
SQL Server中的Merge关键字(转载)
摘要:简介 Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入
阅读全文
Sql Server插入数据并返回自增ID,@@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的区别(转载)
摘要:预备知识:SQL Server的IDENTITY关键字IDENTITY关键字代表的是一个函数,而不是identity属性。在access里边没有这个函数,所以在access不能用这个语句。语法:identity (数据类型,标识种子,标识增长量)举例:select identity (数据类型,标识
阅读全文
SQL Server 中用DBCC Opentran语句查看未关闭的事务(转载)
摘要:从SQL Server 2008开始,可以使用DBCC Opentran语句查看数据库中最早一个没有被关闭的事务,下面这篇文章讲述了如何使用DBCC Opentran语句。 An Open transaction may simply be something that has not finish
阅读全文
SQL Server 索引中include的魅力(具有包含性列的索引)(转载)
摘要:开文之前首先要讲讲几个概念 【覆盖查询】 当索引包含查询引用的所有列时,它通常称为“覆盖查询”。 【索引覆盖】 如果返回的数据列就包含于索引的键值中,或者包含于索引的键值+聚集索引的键值中,那么就不会发生Bookup Lookup,因为找到索引项,就已经找到所需的数据了,没有必要再到数据行去找了。这
阅读全文
SQL Server聚合函数与聚合开窗函数 (转载)
摘要:以下面这个表的数据作为示例。 什么是聚合函数?聚合函数:聚合函数就是对一组值进行计算后返回单个值(即分组)。聚合函数在计算时都会忽略空值(null)。所有的聚合函数均为确定性函数。即任何时候使用一组相同的输入值调用聚合函数执行后的返回值都是相同的,无二义性。 COUNT(统计函数):COUNT函数可
阅读全文
SQLServer 窗口函数(转载)
摘要:一、窗口函数的作用 窗口函数是对一组值进行操作,不需要使用GROUP BY 子句对数据进行分组,还能够在同一行中同时返回基础行的列和聚合列。窗口函数,基础列和聚合列的查询都非常简单。 二、语法格式 窗口函数的语法格式如下: OVER([PARTITION BY value_expression,..
阅读全文
SQL Server中使用convert进行日期转换(转载)
摘要:一般存入数据库中的时间格式为yyyy-mm-dd hh:mm:ss 如果要转换为yyyy-mm-dd 短日期格式.可以使用convert函数.下面是sqlserver帮助中关于convert函数的声明: 使用 CONVERT:CONVERT (data_type[(length)],expressi
阅读全文
SQL中char、varchar、nvarchar、ntext的区别(转载)
摘要:char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。nvarchar(n) 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节
阅读全文
SQL Server数据库(时间戳timestamp)类型 (转载)
摘要:timestamp介绍 如何使用SQL语句插入timestamp字段值?我们从上面的timestamp定义中知道了timestamp这个值一般都是数据库自动添加和修改的,相当于自动增长标识一样(而且执行update修改语句这个字段也会自动更新),所以一般这个字段我们只做查询操作。如果要更新这个字段则
阅读全文