-----MSSQL相关特性
清风智语
十年以上数据库领域一线实战经验,涵盖高可用,灾备中心设计,备份恢复,数据库开发,数据挖掘,数据库设计,性能优化等;其产品服务领域包括Oracle,MySQL,SQLserver,MongoDB等。曾先后服务于晨星资讯,dbadirect,香港易高科技等金融,证券软件行业;并提供企业级数据库性能优化,运维管理相关培训,先后提供培训服务的对象有速尔快递,同洲电子,民太安保险,康拓普,广州电信研究院,中行浙江分行等。
展开
-
SQL server 2005 UNPIVOT运算符的使用
UNPIVOT运算符相对于PIVOT运算符,它执行与PIVOT相反的操作,即将列转换到行。需要注意的是UNPIVOT运算符并不完全是PIVOT的逆向操作。因为执行PIVOT将会执行一次聚合,从而将多个可能的行合并为输出中的单个行。而 UNPIVOT 无法重现原始表值表达式的结果,因为行已经被合并了。另外,UNPIVOT 的输入中的空值不会显示在输出中,而在执行 PIVOT 操作之前,输原创 2010-03-23 10:56:00 · 5524 阅读 · 0 评论 -
一次mysql 5.5升级到5.6导致的ERROR 1805
前阵子将mysql数据库由5.5.14升级到5.6.36,升级后所有的业务数据都正常。运行了几天后,发现在主库上添加用户失败,错误提示为:ERROR 1805 (HY000): Column count of mysql.user is wrong,提示mysql.user表列的数目不对。还真是个坑。下面是其解决方案。一、故障现象mysql> create user 'henry'@'localho原创 2017-11-13 15:55:09 · 2792 阅读 · 1 评论 -
SQLserver 存储过程执行错误记录到表
对于在执行存储过程中碰到的一些错误,如果未及时捕获或者说传递给前端应用程序来,在这样的情形下,故障的排查显得尤为困难。基于此,我们可以可以将这些错误信息记录到日志,同时也可以将其传递给前端应用程序。如本文的示例。一、将错误信息记录到表CREATE TABLE ErrorLog( ID INT IDENTITY (1,1) NOT NULL,原创 2016-05-06 18:11:36 · 14228 阅读 · 0 评论 -
SQL server 2014 内存表特性概述
内存优化表是SQL server2014版本中推出的新特性之一。也是基于create table创建的,只不过是驻留在内存中表。从内存读取表中的行和将这些行写入内存。 整个表都驻留在内存中。表数据的另一个副本维护在磁盘上,但仅用于持续性目的。内存中 OLTP 与 SQL Server 集成,以便在所有方面(如开发、部署、可管理性和可支持性)提供无缝体验。 内存优化表中的行是版本化的。 这意味着表中的原创 2016-05-13 10:59:18 · 9267 阅读 · 0 评论 -
MySQL数据库数据迁移到SQLserver
最近因工作需要,需要将mysql数据库迁移到sqlserver,仅仅是数据迁移,因此相对比较简单。对于mysql迁移到sqlserver,我们需要使用到mysql odbc驱动,然后透过sqlserver链接服务器的方式来访问mysql。具体见下文描述。原创 2016-04-05 17:40:45 · 13515 阅读 · 4 评论 -
基于sqlcmd命令行工具管理SQL server
在SQLServer数据库当中,除了大家熟知的基于SSMS来管理SQLserver数据库之外,还有一个很强大的命令行工具sqlcmd。该命令行工具基本等同于Oracle SQL*Plus以及 MySQL命令提示符下以实现相关的运维管理工作。尤其是需要多个脚本执行的时候,sqlcmd便派上用场了。本文描述了sqlcmd的一些常规用法以及给出如何通过批处理方式执行脚本的示例。原创 2016-03-17 14:23:26 · 12085 阅读 · 1 评论 -
SQL Server 2012安装错误:Error while enabling Windows feature: NetFx3, Error Code: -2146498298
最近在安装SQL server 2012时,碰到错误:Error while enabling Windows feature: NetFx3, Error Code: -2146498298。原本以为Windows 2012配上SQL server 2012应该是一路顺畅才对啊。下面是这个问题的描述及解决方案。 1、安装环境OS:Windows 2012 data center版本SQL:SQL原创 2015-04-27 09:19:58 · 8249 阅读 · 1 评论 -
记一次SQL server 2005 到SQL server 2008 数据库迁移
最近周末完成了一个从SQL server 2005升级到SQL server 2008的升级迁移,其实质是一个服务器迁移的过程。比较复杂的是这个服务器上的复制关系,自身既作为发布服务器,又作为订阅服务器,因此整个迁移同时需保证这些复制关系依旧可用。这个主服务器是供ERP使用,涉及到的模块也比较相对多,因此从迁移到验证整个过程还是比较长。记下本文以示庆贺。 一、主要的步骤 1、检查现有数据库的原创 2014-12-07 21:19:28 · 7667 阅读 · 1 评论 -
SQL server数据库用户映射到登陆用户
最近有朋友的SQL server数据库意外中枪,几经周折,数据将数据库恢复到新环境。恢复后在数据库级别有用户名而实例级别则无相应的登陆用户。这在SQL server数据库中是一个比较普遍的情形。本文描述的是即是对这些孤立的账户通过系统过程sp_change_users_login来建立其映射关系。1、sp_change_users_login的功能及其限制 使用 sp_change_users_原创 2014-11-25 11:13:56 · 17945 阅读 · 2 评论 -
ROLLUP 与 CUBE 运算符的使用
对于数据的汇总,是数据库经常用到的任务之一,除了我们通常使用的GROUP BY分组配合聚合函数对数据汇总,以及使用UNION ALL 对数据汇总之外,SQL还提供了 GROUP BY Col1,Col2.. WITH CUBE | ROLLUP,以及COMPUTE BY 等汇总方式,本文主要介绍了使用CUBE 与ROLLUP运算符来实现数据的分级汇总。IF OBJECT_I原创 2010-02-23 15:33:00 · 5173 阅读 · 0 评论 -
关于隐式转换
昨天,一个读者向我提交了一个问题,请我就SQL server 隐式转换发表一些看法。当SQL server遇到一个不匹配类型的表达式的时候,它有两种选择。它使用隐式转换并能够执行或者转换错误而导致执行失败。在深入隐式转换之前,让我们假定错误的情形。 如果一个隐式转换不可能实现,SQL server可能产生两种可能的错误。如果两种数据类型不能完全兼容(简言之,在两种数据翻译 2010-03-16 13:08:00 · 5428 阅读 · 3 评论 -
@@identity , SCOPE_IDENTITY,IDENT_CURRENT 三者的异同
--=====================================================--@@identity , SCOPE_IDENTITY,IDENT_CURRENT 三者的异同--=====================================================--1.@@IDENTITY: 返回最后插入的标识值IF O原创 2010-01-12 13:31:00 · 4219 阅读 · 0 评论 -
排序规则引起的冲突问题
最近在工作中碰到一例因排序规则而导致的冲突问题,运行环境是SQL 2008,具体代码如下:DECLARE @URL VARCHAR(500), @startdate DATETIME, @enddate DATETIME, @Identifier VARCHAR(20); SELECT @URL = /articlenet/article.aspx,原创 2010-03-18 17:18:00 · 5689 阅读 · 0 评论 -
SQL server 数据导入导出BCP工具使用详解
数据的导入导出是数据库管理员常见的工作任务之一,尤其是平面文件的导入导出。BCP 工具则为这些任务提供了强有力的支持,它是基于DB-Library,尤其是在生产环境中,从本地传送数据到服务器或从服务器传送数据到本地,因它无需提供图形界面,减少网络带宽,提高了传输速率。BCP的全称是BULK COPY PROGRAM,它是一个命令行程序,可以完全脱离SQL server进程来实现。原创 2010-02-20 14:49:00 · 12477 阅读 · 1 评论 -
SQL server 2005 PIVOT运算符的使用
PIVOT,UNPIVOT运算符是SQL server 2005支持的新功能之一,主要用来实现行到列的转换。本文主要介绍PIVOT运算符的操作,以及如何实现动态PIVOT的行列转换。 关于UNPIVOT及SQL server 2000下的行列转换请参照本人的其它文章。一、PIVOT的语法SELECT [non-pivoted column], -原创 2010-03-16 13:20:00 · 12887 阅读 · 2 评论 -
MySQL实例恢复
MySQL实例在异常宕机重启后,会自动启动实例恢复。由于MySQL为多引擎数据库,所以需要说明的是MySQL实例恢复,实质上指的是对事务进行恢复,即对innodb恢复。本文简要描述mysql实例恢复的步骤,并通过具体演示来感受mysql实例恢复的过程。一、MySQL实例MySQL实例就是mysqld后台进程以及多个线程再加上内存分配 二、MySQL实例恢复的步骤三、Inn...原创 2018-09-10 13:00:48 · 3026 阅读 · 0 评论