代码人生的小狗窝

一行行枯燥的代码,却描绘出人生的点点滴滴

推荐文章

用PIVOT跟UNPIVOT实现行列转置

    用PIVOT和UNPIVOT实现行列转置(微软官方解释)FROM - Using PIVOT and UNPIVOT https://msdn.microsoft.com/en-us/library/ms177410.aspx   1、PIVOT列值转置为行 列名为已知值(静态列): create table table1 ( fcompany nvarchar(20) ,fweek nvarchar(20) ,fvalue int ) insert into table1(fcompany,fweek,fvalue) select 'c1', 'w1',1 union all select 'c1', 'w2',2 union all select 'c1', 'w3',3 union all select 'c1', 'w4',4 union all sel

    阅读全文>>

作者:coody分类:【_Sql Server浏览(1808

2018-05-21

记要一下自己的游标小脚本

    记录一下自己的游标小脚本 ---游标循环遍历-- begin declare @id int,@temp int,@error int set @error=0 begin tran --申明事务 --业务-- update SmartPromoter set CustomerID=a.ID from SmartCustomer a,SmartPromoter b where (a.Mobile=b.Mobile or a.MobileBackup=b.Mobile) and b.CustomerID is null and len(b.Mobile)=11 declare promoter_cursor cursor for(select ID from SmartPromoter where CustomerID is null and len(M

    阅读全文>>

作者:coody分类:【_Sql Server浏览(1837

2018-05-21

透过SSIS的“查找”组件进行不同数据源之间数据的合并操作

    通过SSIS的“查找”组件进行不同数据源之间数据的合并操作  为了协助开发还原生产环境中的某些bug,需要将将生产环境的某些特定表数据导入到测试环境做测试,之前一直都是暴力地truncate测试环境的表,然后用SSIS将生产环境对应的整张表数据导入测试环境,简便快捷后来开发提出来,保留测试环境已有的数据,只同步差异的数据(根据主键),于是就尝试使用SSIS中的“查找”组件进行不同服务器之间的“存在则更新,不存在则插入”数据合并操作,实际操作的时候只执行插入操作,达到同步数据的目的。   尝试之后觉得还是挺好使的,看起来跟简单,操作起来步骤还是挺多的,记录一下。     首先最主要的一个组件就是如下截图的查找组件。  完整的测试结果如图所示,最主要的目的就是让源数据“兵分两路”,

    阅读全文>>

作者:coody分类:【_Sql Server浏览(1167

2018-05-21

关于TRIM的优化技艺

    关于TRIM的优化技巧背景 今天在论坛中,看到有人在问一个千万级别表查询的优化。一个简单的查询几分钟。语句如下 SELECT  work_date ,        major ,        style ,        jo_key_seq ,        component ,        qty ,        bundle_id ,        jo_sku_key_seqFROM    dbo.rfid_transaction_tableWHERE  

    阅读全文>>

作者:coody分类:【_Sql Server浏览(891

2018-05-21

目录碎片的检测和整理

    索引碎片的检测和整理存储数据是为了查找数据,存储结构影响数据查找的性能。对无序数据进行查找,最快的查找算法是哈希查找;对有序数据进行查找,最快的查找算法是平衡树查找。在传统的关系型数据库中,聚集索引和非聚集索引都是平衡树(B-Tree)类型的存储结构,用于顺序存储数据,便于实现数据的快速查找。除了提升数据查找的性能之外,索引还能减少硬盘IO和内存消耗。通常情况下,硬盘IO是查找性能的瓶颈,由于索引是数据表的列的子集,这意味着,索引只存储部分列的数据,占用的硬盘空间比全部列少了很多,因此,数据库引擎只需要消耗相对较少的硬盘IO和内存buffer,就能把索引数据加载到内存中。 索引以B-Tree结构存储在数据文件中,分为叶子节点和非叶子节点,叶子节点用于存储数据,而非叶子节点(中间节点和根节点)用于存储索引键,节点数据按照索引键排序。理论上,一旦数据集确定下来,索引查找的时间消耗就只跟索引结构

    阅读全文>>

作者:coody分类:【_Sql Server浏览(2236

2018-05-21

用户 'XXX\SERVERNAME$' 登录失败。 缘故: 找不到与提供的名称匹配的登录名。 [客户端: ]

    用户 'XXX\SERVERNAME$' 登录失败。 原因: 找不到与提供的名称匹配的登录名。 [客户端: ]一工厂的中控服务器遇到了下面Alert提示,'XXX\SERVERNAME$'  XXX表示对应的域名, SERVERNAME$(脱敏处理,SERVERNAME为具体的服务器名称+$),而且如下所示,客户端是本机,研究了一下,才搞清楚具体原因.       日期/时间:  2017/6/20 12:24:51   说明:   用户 'XXX\SERVERNAME$' 登录失败。 原因: 找不到与提供的名称匹配的登录名。 [客户端: <local machine>]       该服务器本身不需要Reporting Services,不知道Local的负责人安装S

    阅读全文>>

作者:coody分类:【_Sql Server浏览(642

2018-05-21

不再纳闷,无值和NULL值

    不再迷惑,无值和NULL值在关系型数据库的世界中,无值和NULL值的区别是什么?一直被这个问题困扰着,甚至在写TSQL脚本时,战战兢兢,如履薄冰,害怕因为自己的一知半解,挖了坑,贻害后来人,于是,本着上下求索,不达通幽不罢休的决心(开个玩笑),遂有此文。 学习过关系型数据库的伙伴都知道,NULL是指不确定的值,在数据库中绝对是噩梦的存在;而空值,一般对字符串类型而言,指没有任何值的字符串类型,为字符类型的变量设置为空值:set @vs='',空值跟无值不同。有人可能会问,无值是什么?无值,是指数据表中没有任何数据。无值和不确定值,单从字面意思上来看,两者之间的定义很清楚,一旦深究,这两者之间的关系,有时令人十分迷惑(confused),这是因为,在特定条件下,无值会转换为NULL值。 一,举个栗子,理解无值和NULL值的区别 比如,创建一个临时表,在不插入任何数据时,该数据表是空的,没有任

    阅读全文>>

作者:coody分类:【_Sql Server浏览(1079

2018-05-21

极简逻辑表达式的设计跟查询

    极简逻辑表达式的设计和查询在数据库开发中,对两个关系表进行连接查询,能够直接做“逻辑或”的查询,而对于逻辑与和逻辑非的查询,则稍复杂点,需要编写额外的代码来实现。在关系型数据库中,所谓的连接,实际上是集合的包含,只要包含一项,就满足连接条件,实现的逻辑或,这种设计,能够满足绝大多数的查询需求。有时,对于一条数据,可能需要通过多个逻辑表达式来定性,比如,判定一篇文章是否跟Microsoft Azure有关,通常简单的做法是从多个关键字的逻辑组合来定性:文章中同时含有关键字“Microsoft”和“Azure”,或者同时含有关键字“Windows”和“Azure”,把这种逻辑组合抽象成表达式,就是:( Microsoft & Azure ) | ( Windows &

    阅读全文>>

作者:coody分类:【_Sql Server浏览(822

2018-05-15

开发库测试库间触发器同步 查寻某时间点后的触发器 生成其删除 创建 禁用的脚本

    开发库测试库间触发器同步 查找某时间点后的触发器 生成其删除 创建 禁用的脚本示例效果: 为便于数据库间的脚本移植, (如在开发库和测试库间进行脚本同步) 获取某时间点后,数据库增修的Triggers, 生成这些Triggers的创建脚本;   相关步骤: 1.通过SMSS 连接数据库,打开一个SQL窗口;   2.右键该窗口  Results to -》Results to text   右键该窗口 Query Options -》Results - Text -》 取消勾选 Include column headers in the result set   3. 执行如下sql,得到其文本结果信息   declare @trigname nvarchar(100)=N''; --查找某时间点后的增修的Trigg

    阅读全文>>

作者:coody分类:【_Sql Server浏览(1372

2018-05-21

利用DataSet一部分功能实现网站登录

    利用DataSet部分功能实现网站登录这是我的第一篇博文,有一丝小激动,不曾想有一天我也能写出一点经验为大家服务。如有表达不清请多见谅。   首先,我之前必须完成过注册,并把个人信息存入数据库中。 其次,这部分的个别对象是存于某些文档中的,需要引用命名空间。   using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using ZG.Common;//后面用到ScriptHelper对象(ScriptHelper.cs是自己编写的cs文件)using System.Data;//后面用到dataset namespace WebApplication{ p

    阅读全文>>

作者:coody分类:【_Sql Server浏览(1291

2018-05-15

带有事务和异常处理的存储过程

    带有事务和错误处理的存储过程以前在开发中需要用到带错误处理的存储过程,在网上找到了解决方案,现在整理在这,以备日后所需,时间长了原文已经找不到了,感谢为我提供帮助的兄弟。 1.创建错误日志表 CREATE TABLE [dbo].[t_ErrorLog]( [ErrorLogID] [int] IDENTITY(1,1) NOT NULL, [ErrorTime] [datetime] NOT NULL, [UserName] [sysname] NOT NULL, [ErrorNumber] [int] NOT NULL, [ErrorSeverity] [int] NULL, [ErrorState] [int] NULL, [ErrorProcedure] [nvarchar](126) NULL, [ErrorLine

    阅读全文>>

作者:coody分类:【_Sql Server浏览(1597

2018-05-21

大数据操作:剔除和去重

    大数据操作:删除和去重一些看似简单的数据操作,当作用于海量数据集时,就会出现“意料之外,却在情理之中”的问题,海量数据操作,需要采用特殊方法,才能“曲径通幽”。在删除海量数据时,需要注意日志的增长,索引碎片的增加和数据库的恢复模式,特别是利用大容量日志操作,来减少日志的增长和提高数据插入的速度。对于大数据去重,通过一些小小的改进,比如创建索引,设置忽略重复值选项等,能够提高去重的效率。 一,从海量数据中删除数据 从海量数据表中删除一半数据,看似简单,使用delete命令,如果真这么干,SQL Server产生的事务日志暴增,估计会把服务器硬盘爆掉。数据库的恢复模式会影响日志文件的增长,在删除海量数据时,根据采用的方法,相应地把恢复模式设置为simple,或bulk_logged 模式,能够在很大程度上减少删除操作产生的事务日志,从而避免日志暴

    阅读全文>>

作者:coody分类:【_Sql Server浏览(1025

2018-05-20

字符串跟关系格式的转化

    字符串和关系格式的转化在数据库开发过程中,字符串和关系表的转化是一项基本技能。当字符串中存在分隔符时,有时将其转换成关系表数据,和其他数据表进行join查询,出现这种情况,是因为没有遵守关系数据库的设计范式,没有把字符串拆分成原子项存储,也有可能是数据传参数;有时会遇到相反的情况,需要将关系表的相关数据拼接成一个字符串显示,或传参。 把格式化的字符串转化成关系格式,基本思路分为两种: 利用TSQL的循环语句:每一次循环都插入到关系表变量或临时表中,这种思路是面向过程的编程; 使用XML查询:先把字符串转化成XML格式,再利用XML的nodes()函数,把XML数据转化成关系数据;这种思路是面向集合的编程,建议采用XML查询实现; 把关系格式转化成字符串,基本思路分为两种: 利用TSQL的游标,对字符串执行累加连接,这种思路是面向过程的编程; 利用XML查询的for xml path子

    阅读全文>>

作者:coody分类:【_Sql Server浏览(1734

2018-05-21
上一页 1/1221页 下一页