- 博客(37)
- 问答 (2)
- 收藏
- 关注
原创 SQL查询某内容来自于哪个存储过程或触发器
在做ERP运维的工作中,偶尔会遇到用户使用系统过程中出现一些错误提示,这时什么快速查到报错的源头呢?可以用跟踪器跟踪,找出报错的原因,下面是根据报错内容,查到提示来自于系统里的哪个存储过程或触发器。---查看某内容来自于某个存储过程SELECT NAME FROM sysobjects o, syscomments sWHERE o.id = s.idAND TEXT LIKE '...
2020-04-10 19:54:23
1085
原创 DBCC CHECKDB修复异常表
公司消耗品T6系统查询某表时反映很慢,经过DBCC CHECKDE 表后出现如下错误:--表 'Ap_Vouchs' (对象 ID 568389094)中发现 0 个分配错误和 2 个一致性错误。--表 'Ar_BadPara' (对象 ID 616389265)中发现 0 个分配错误和 2 个一致性错误。---解决方法:--以repair_allow_data_loss级
2017-10-14 18:18:36
4931
转载 恢复SQL Server被误删除的数据
大家对本人之前的文章《恢复SQL Server被误删除的数据》 反应非常热烈,但是文章里的存储过程不能实现对备份出来的日志备份里所删数据的恢复这个是一个缺陷,本人决定对这个存储过程扩展一下,支持对log backup文件里的delete语句进行恢复 原文来自:http://www.cnblogs.com/lyhabc/p/4620764.html实验步骤
2017-09-28 15:58:23
1647
转载 SQL Server:你必须知道的非聚集索引扫描
原文出处: 一线码农 http://www.open-open.com/lib/view/open1427267261293.html非聚集索引,这个是大家都非常熟悉的一个东西,有时候我们由于业务原因,sql写的非常复杂,需要join很多张表,然后就泪流满面了。。。这时候就有DBA或者资深的开发给你看这个猥琐的sql,通过执行计划一分析。。。或许就看出了不该有的表扫描。。。万恶之
2017-09-19 10:01:14
822
转载 SQL Server 索引碎片和填充因子
原文来自:http://www.cnblogs.com/CareySon/archive/2012/01/06/2313897.html索引的碎片分内部和外部。首先,理解外部碎片的这个“外”是相对页面来说的。外部碎片指的是由于分页而产生的碎片.比如,我想在现有的聚集索引中插入一行,这行正好导致现有的页空间无法满足容纳新的行。从而导致了分页: 因为在SQ
2017-09-13 14:35:30
1341
转载 SQL配置即席查询的优化
前言: 在第一次执行查询或者存储过程时,会创建执行计划并存储在SQLServer的过程缓存内存中。在很多时候,我们会执行一些简单的程序,仅仅执行一次,而为这些查询创建存储过程是非常浪费内存资源的。由于内存不足,可能会导致你的缓存溢出,从而影响性能。在2005之前,这是一个大问题,为了纠正这个问题。微软在SQLServer 2008中引入了对即时查询负载的优化功能。这个功能在2
2017-08-29 09:48:08
1300
转载 SQL Server 索引维护(1)—如何获取索引使用情况
原文来自于:http://blog.youkuaiyun.com/dba_huangzj/article/details/49735941 看了三遍、受益匪浅!目录(?)[-]前言起因收集系统行为需要收集的信息实操查找索引定义每个表上索引的使用情况某个索引被使用的具体情况其他信息收集缺少索引索引碎片索引分析索引不合理例子
2017-08-20 14:56:32
1575
原创 exec执行存储过程提示"违反主键约束"
1.执行存储过程 exec p_employee_same '2017-07-26','2017-07-26' 提示错误,如图---dbo.hr_employee [ID]为主键把exec 语句修改如下:begin try begin tran exec p_employee_same '2017-07-26','2017-07-26'
2017-07-26 16:23:15
1379
原创 关于SQL 的with as 循环用法
WITH AS短语,也叫做子查询部分(subquery factoring),是用来定义一个SQL片断,该SQL片断会被整个SQL语句所用到。这个语句算是公用表表达式(CTE),对于with 的循环 sql 2008有限制,最大只能递归 100 次,08以上就没有测试过,下面来测试看看。如我想生成1到200行的数据代码:with t as (select 1 as id uni
2017-06-20 11:53:05
17276
转载 SQL 2008R2 误删除数据恢复方法(一)
原文出处:http://blog.youkuaiyun.com/dba_huangzj/article/details/8491327本来想记录一下利用recovery for sql server 这个软件恢复误删除的数据,但测试了几次不成功,就先转载这位大神的方法,太崇拜他,拿自己的测试库按照他的方法走了一遍。1)查看数据当前的还原模式是否为FULL,查看方法,也可以图形的方式看SELECT
2017-06-20 11:52:17
25768
原创 SSRS 锁定标题栏
大家在制作excel 时肯定知道“冻结首行” 的功能,现在说说SSRS 冻结首行,如果设定不符,会报错“tablix"Tablix3”有不正确的集 FixedData 属性,,,等错误提示,如图
2017-06-14 10:18:25
1205
原创 SSRS实现层叠隐藏显示效果
制作SSRS 时有时需要通过“+”,“-” 符号来隐藏或者显示一些数据,如图实现效果图预览报表时通过“+”,“-”按键来进行隐藏code值,前端设计如图也可以通过添加表向导进行设计,添加表向导时有该类型的选择。
2017-06-13 19:50:07
767
原创 关于SQL利用charindex、substring等函数提取不同位置的值
关于SQL提取不同位置的值,可能大家经常需要用到,今天在整理一个SSRS报表时遇到的提取,在这里记录一下。原数据为:因为每个值后面都有一个共同的符合(分号),所以按分号进行定位1)取第一个分号前的数值,比较容易代码1为:left(remark,charindex(';',remark)-1) as zzno 或者:SUBSTRING(remark,1,charindex
2017-06-06 15:21:20
9240
翻译 索引优化(二)
1)查看数据库中无效索引信息SELECT ind.index_id , obj.name AS TableName , ind.name AS IndexName , ind.type_desc , indUsage.user_seeks , indUsage.user_scans ,
2017-06-01 19:14:22
277
原创 关于row_number、desek_rank、ntile等函数应用
前几天在处理一个上下班考勤问题,因为上下班都是在一个卡机里面打卡,也没有区分班别,制作SSRS 报表时数据比较乱,后来想起用SQL 的desek_rank 函数来区分上下班,SQL 有几个排名函数,下面来说说常用的这几个吧,一:row_number row_number:函数的用途是非常广泛,这个函数的功能是为查询出来的每一行记录生成一个序号。row_number函数的用法如下面
2017-05-24 18:48:53
1259
原创 关于SQL 数据库的日期时间函数
select GETDATE() as '当前日期',DateName(year,GetDate()) as '年', 取出当前年份、月、日等时间DateName(month,GetDate()) as '月',DateName(day,GetDate()) as '日',DateName(dw,GetDate()) as '星期',DateName(week,GetDate(
2017-05-03 19:27:51
1149
原创 关于SQL数据库的异地备份(三)
利用批处理和windows的任务计划进行异地备份,实现数据库容灾作用,就是将你备份在本机的文件再copy到另一台机器上。批处理内容为: xcopy /d/e/c/i/h/r "x:\*.*" "w:\*.*"rem It well ignore the same files.rem /d copy the new date filesrem /e copy the folder
2017-04-27 19:04:17
1320
翻译 关于SQL数据库的异地备份(二)
前面说过利用SQLBackupAndFTP 这个工具进行数据库的异地备份,但对于大的数据库,此工具备份花费时间太久,因为此工具不支持压缩备份,后来通过SQL 交流群里大神提醒利用NAS 分配iscsi 盘实现,网上找到方法,原文链接来自:http://delxu.blog.51cto.com/975660/931258/ ,后来联系NAS 管理员进行相关设置:【什么是iSCSI盘】 iS
2017-04-27 16:13:56
1234
原创 关于SQL数据库的异地备份(一)
这几天一直忙着做数据库的异地备份,根据上级领导的指示,关于电算部所有重要文件都要自动往NAS 存储进行备份,我负责DB 的整理,统计了一下,一共8个数据库,开始一直在研究利用批处理的方式,网上也参照了很多关于利用数据库的作业功能,但执行时总是提示找不到指定路径(NAS存储的路径),折腾了两天,终于找到一个好工具及利用NAS上的iscsi 功能实现,下面就来说说将Sql 数据库备份到NAS 存储上的
2017-04-25 18:18:26
13014
原创 SQL进行字符的拼接与拆分
1.在处理数据查询时,有时需要将多行数据合并到一行里,或者将一行里的数据拆分处理,下面来看看例子:如你有一组数据: ID name1212 大西装1212 小西装我们需要将结果显示为: ID name1212 大西装,小西装创建测试数据:select * from #2DROP TAB
2017-04-14 19:49:34
9295
转载 SQL 执行计划的理解
要理解执行计划,怎么也得先理解,那各种各样的名词吧。鉴于自己还不是很了解。本文打算作为只写懂的,不懂的懂了才写。 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的。 名词解析: 扫描:逐行遍历数据。 先建立一张表,并给大家看看大概是什么样子的。 CREATE TABLE Person( Id int IDENTI
2017-04-13 19:47:55
15183
转载 设置SQLServer的行版本控制隔离级别
1.--查询数据库状态select name,user_access,user_access_desc,snapshot_isolation_state,snapshot_isolation_state_desc,is_read_committed_snapshot_on from sys.databases2. 查看当前数据库的隔离级别 DBCC Useroptions -- is
2017-04-13 15:25:15
6353
原创 SQL 事务 begin tran、commit tran、rollback tran 的用法
首先理解一下这三个事务的大概意思:begin Transaction 可以理解成新建一个还原点。 commit Transaction 提交这个自begin tran开始的修改 rollback Transaction 表示还原到上个还原点。今天在更新一个ERP仓库名称的时候导致该界面一直属于Locking 状态,还以为开发商修改了什么东西,原来是自己在执行update的时候导致的
2017-04-13 15:07:11
47130
原创 SQL 跨数据库查询方法
前几天制作一个SSRS报表时需要跨数据库调用问题,SQL 2000数据库需要访问到SQL 2008 数据库的数据,以下是实现的方法:方法:SQL 2000 创建链接服务器 exec sp_addlinkedserver 'sqlLink','','SQLOLEDB','远程服务器名或ip地址'exec sp_addlinkedsrvlogin 'sqlLink','f
2017-04-03 19:53:01
2661
原创 SQL空值补零的方法
制作SSRS时遇到一个小问题,用户要求按一天24小时进行选择查看报表的数据,从master..spt_values 取出0~23,但0~9是不属于系统正常的时间点,需要变更后00~09,下面有几种方法实现。方法一: select right (cast('0'+cast( number as nvarchar(2)) as nvarchar(3)),2)from master..spt
2017-03-27 15:28:10
7716
转载 捕抓和记录SQL发生的死锁信息
我们知道,可以使用SQL Server自带的Profiler工具来跟踪死锁信息。但这种方式有一个很大的敝端,就是消耗很大。据国外某大神测试,profiler甚至可以占到服务器总带宽的35%,所以,在一个繁忙的系统中,使用profiler显然不是一个好主意,下面我介绍两种消耗比较少的方法。其中第二种的消耗最小,在最繁忙的系统中也可使用。第一种最为灵活,可满足多种应用。方法一:利用SQ
2017-03-19 09:18:04
612
翻译 SQL 获取表字段属性、注释信息等
SELECT 表名=case when a.colorder=1 then d.name else '' end, 表说明=case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号=a.colorder,
2017-03-10 15:11:09
1662
原创 SQL 利用merge 同步数据库之间表的数据
同步两个数据库之间两表的数据也许的数据库管理员偶尔需要做的一件事情,下面来记录一下常用的两种方法:方法一:使用delete、truncate 方法二:使用 merge into ,Merge是在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个
2017-03-10 13:40:02
5705
原创 查看数据库磁盘分区可用空间及错误日志的输出
--查看数据库磁盘空间剩余大小 exec master..xp_fixeddrives 或者 exec xp_fixeddrives ----查看当前数据数据库空间使用情况 exec sp_spaceused ----列出错误日志的最后日期和大小 EXEC master.dbo.xp_enumerrorlogs -------列出错误日志的内容ex
2017-03-09 11:00:39
540
原创 关于 templog日志文件收缩
无意间发现系统数据库的templog.ldf 文件很大,500G磁盘空间,templog.ldf 占用了101G,当时首先想到的就是收缩和重建log文件。日志查看方法一:dbcc sqlperf(logspace)日志查看方法二:select db_name(database_id) dbname, type_desc, --数据还是日志
2017-03-04 10:26:02
5737
原创 优快云回帖记录(2)
关于随机填充时间段问题,原问题如下:我想按工号逐行把平时加班小时大于2的人晚班上班设置到18:15-18:30之间,晚班下班设置到20:30-20:45之间应该怎么写啊 回答:create table #a (id int,date1 varchar(20),date2 varchar(20),date3 varchar(10)) insert into #
2017-02-16 14:49:41
295
原创 优快云 回帖记录(1)行时间合并[问题点]
在时间充足的情况,会经常到论坛上看看别人发是帖子,能够回答的就尽量回复,一起学习、成才,因为担心有时会忘记,所以记录下来。问题如下: 回答如下:create table #test(bm varchar(10), xm varchar(10),kqh varchar(10),rq datetime) go insert into #test val
2017-02-16 14:39:05
330
翻译 索引优化(一)
说到优化大家可能首先想到就是索引,当然,索引是对数据库表中的一列或者多列的值进行排序的一种结构,能够快速访问数据库表中特定信息,索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了,聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索要快,根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。好了,对于索引我也是略知一二
2017-02-03 14:14:36
350
原创 EXCEL 常用表达式
1)提取指定符号位置的值如:GH98-01510A为列=left(A1,FIND("-",A1)-1) 结果是:GH98=Right(A1,LEN(A1)-FIND("-",A1)) 结果是:01510A2)提取符号中的值如:GH(98)-01510A=mid(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1) 结果是:98
2017-01-21 17:08:21
4417
原创 SSRS 常用函数、表达式
1)单元格显示行号,两种方法实现,相当SQL row_number() order ():,=Rownumber(Nothing)=Runningvalue(1,sum,nothing) 2)按组区分行号,两种方法实现:=rownumber("组名")=runningvalue(1,sum,"组名") 3)零除零报错解决方法: 报表设计面板(编辑处外面空白区),
2017-01-12 09:49:13
8962
转载 SQL常用系统表
----------------------系统表说明sysaltfiles :主数据库 保存数据库的文件syscharsets :主数据库 字符集与排序顺序sysconfigures :主数据库 配置选项syscurconfigs :主数据库 当前配置选项sysdatabases :主数据库 服务器中的数据库syslanguages :主数据库 语言syslo
2016-11-24 08:31:06
787
转载 SQL 特殊函数应用
1)Isnumeric:返回1|0,检验数值是否为数字类型 。示列:select * from tb where isnumeric(列)<>1 isnumeric返回非数值的数据行。 2) Isdate:测试某一字段是否是有效的datetime 类型,一般用于检查时间列是否存在非正确时间数值,比如系统生成 201608 1、2016801 等这样的时间数值。示列:sele
2016-11-21 15:28:54
342
空空如也
关于考勤数据的疑问!
2016-12-11
SQL 列转行如何实现?
2015-02-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人