-
自动清理MSSQLServerTableCollation问题的解决方法
在一个团队项目中,没有约定好Collation,在MSSQLServer中编程就会遇到这样的问题:Cannotresolvethecollationconflictbetween"Latin1_General_CI_AS"and"SQL_Latin1_General_CP1_CI_AS"intheequaltooperation.因为编码问题,不同编码的字符串并不能直接进行比较,这种有两个解决方法,1是在query中指定用某一个collation进行比较,另外一个就是修改column的collationtype来避免这种错误。第二种方法,一个一个column改起来很累,写了个script,除了被当作constraints比如primarykey,foreignkey之外的varchar,char,nvarchar都可以统一修改成一个collation…完整sql代码:复制代码代码如下:declare@CollationNamevarchar(500);set@CollationName='SQL_Latin1_General_CP1_CI_AS'createtable#tmp(sqlS...
数据库操作教程 2022-09-23 17:07:58 -
SQLSERVER的排序问题结果不是想要的
在论坛里经常有人问这样的问题:同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序?其实,只要语句里没有指定“orderby”,SQLSERVER并不会按照顺序返回的。有可能你的表里有一个字段已经建立了索引你想结果集按照那个建立了索引的字段排序,那么你不指定“orderby”是没有问题的,因为表的存储顺序就是按照那个字段的顺序排好序了,所以可以不指定“orderby”,但是如果你没有在想排序的那个字段建立索引,或者在SQL2000里建立了索引,而在SQL2005/2008里没有建立索引,那么就要明确地用“orderby”指定...
数据库操作教程 2022-09-23 17:07:22 -
sqlserver附加.mdf权限问题解决
问题:数据库附加.mdf文件时,提示无法打开物理文件,操作系统错误5:"5(拒绝访问)"错误:5120。解决方案:数据库当前账户对存放.mdf文件的文件夹权限不足,该文件夹权限角色加入Everyone...
数据库操作教程 2022-09-23 17:07:10 -
一条select语句引起的瓶颈问题思考
情境还原:公司一项目新上线,刚上线的第2天,在后台发现数据库服务器与IIS服务器的网络IO出现瓶颈,1GB的网络带宽,占用了70%-100%,也就是每秒传输数据700MB-1GB,数据库使用内存高达21GB。IIS服务器CPU使用率时常爆至80%-90%,导致网站频频出现连接超时...
数据库操作教程 2022-09-23 17:06:35 -
诊断SQLSERVER问题常用的日志概述及使用
诊断SQLSERVER问题常用的日志这里主要有两个:(1)Windows事件日志(2)SQLSERVERErrorLog1、Windows事件日志EventLog作为一个Windows开启和管理的服务程序,Windows会在自己的系统日志systemlog里记录SQLSERVER这个服务的启动、正常关闭、异常关闭等信息。SQLSERVER也会把自己的一些概要信息同时记录在Windows的应用程序日志里ApplicationLog而Windows日志本身又能够反映操作系统的健康情况,是否有任何软件或硬件的异常...
数据库操作教程 2022-09-23 17:06:18 -
SQLServer误区30日谈第21天数据损坏可以通过重启SQLServer来修复
误区#21:数据库损坏可以通过重启SQLServer或是Windows,或是附加和分离数据库解决错误SQLServer中没有任何一项操作可以修复数据损坏。损坏的页当然需要通过某种机制进行修复或是恢复-但绝不是通过重启动SQLServer,Windows亦或是分离附加数据库...
数据库操作教程 2022-09-23 17:05:18 -
SQLServer高可用的常见问题分析
每次谈到SQLServer的高可用,很多的DBA,特别是SQLServerDBA心里一痛:因为大家都认为SQLServer无法或者很难实现SQLServer。也有很多的DBA朋友脑袋一拍,给出答案“高可用不就是微软的那几个技术吗,如Replication,FailoverClustering”…1.难道SQLServer在高可用上面就显得这么的无力吗?回答:不是的,其实SQLServer很给力...
数据库操作教程 2022-09-23 17:03:06 -
你真的了解触发器么数据实时同步更新问题剖析
当我们想更新一张动态表的时候(即:表中的数据不断的添加),也许我们会用数据库代理,通过写作业,然后让他定时查询动态表中最新添加的数据,然后更新数据。这样时能实现更新数据的要求,但是数据却不能实时同步更新...
数据库操作教程 2022-09-23 17:02:58 -
对有insert触发器表取IDENTITY值时发现的问题
问题是这样的:T1表上有一个INSERT的触发器,在插入数据的时候,会自动往T2表里面插一条记录这样当我在T1表上插入新的数据时,取@@IDENTITY的时候,返回的id值是T2表里面的新记录的值赶快查了下msdn,原来@@IDENTITY还有这么多讲究:在一条INSERT、SELECTINTO或大容量复制语句完成后,@@IDENTITY中包含语句生成的最后一个标识值。如果语句未影响任何包含标识列的表,则@@IDENTITY返回NULL...
数据库操作教程 2022-09-23 17:01:50 -
SQLServer误区30日谈第16天数据的损坏和修复
误区#16:多个关于数据的损坏和修复误区坊间流传的很多版本都不正确我已经听过很多关于数据修复可以做什么、不可以做什么、什么会导致数据损坏以及损坏是否可以自行消失。其实我已经针对这类问题写过多篇博文,因此本篇博文可以作为“流言终结者”来做一个总结,希望你能有收获...
数据库操作教程 2022-09-23 17:00:10 -
修复断电等损坏的SQL数据库
如数据库名为:FreeHost首先是设置为单用户模式,然后修复,最后是恢复多用户模式。ALTERDATABASE[FreeHost]SETSINGLE_USERGODBCCCHECKDB('FreeHost',repair_allow_data_loss)WITHTABLOCKGOALTERDATABASE[FreeHost]SETMULTI_USERGO--CHECKDB有3个参数:--REPAIR_ALLOW_DATA_LOSS-- 执行由REPAIR_REBUILD完成的所有修复,包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,以及删除已损坏的文本对象...
数据库操作教程 2022-09-23 16:58:30 -
SQLServer使用Merge语句当源表数据集为空时,无法进行查询的问题
面举一个例子来具体说明一下:有两个表SourceTable为登陆表,TargetTable为授权表,如果访问用户在登陆表中,更新授权表的授权级别,否则授权0表示游客。sql语句如下:--SourceTable为登陆表,TargetTable为授权表--如果访问用户在登陆表中,更新授权表的授权级别,否则授权0表示游客...
数据库操作教程 2022-09-23 16:57:56