SQL Server

程序员推荐的7个开发类工具

别等时光非礼了梦想. 提交于 2020-08-13 12:25:02
做.NET软件工作已经10年了,从程序员做到高级程序员,再到技术主管,技术总监。见证了Visual Studio .NET 2003,Visul Studio 2005, Visual Studio Team System 2008, Visual Studio 2010 Ultimate,Visual Studio 2013一系列近5个版本的变化与亲自使用。每一个版本都有深刻有意义的变革。Visual Studio .NET 2003 极力推广的Web Services虽然没有很流行,但是它开发ASP.NET的编译模型很快得到公司的技术部认可,完全重写了原来的ASP系统。 很幸运工作以来一直是.NET + SQL Server 的开发工作,其它比如Oracle或是Android Java类的技术工作并没有很长时间的经历,所以我推荐的工作就侧重于.NET + SQL Server类的工具。 1 ReSharper 7.1 现在电脑开发人员硬件的标准配置是i5+8G,在内存已经足够用的情况下,推荐安装好Visual Studio后第一个要安装的插件就是 ReSharper,这个软件的几百个功能点都很实用。最新版本的ReSharper是ReSharper.2015.1.Ultimate.9.1.0,支持Visual Studio 2015。 2 .NET Reflector 著名的

MySQL和Oracle的区别

夙愿已清 提交于 2020-08-13 11:02:51
 由于SQL Server不常用,所以这里只针对MySQL数据库和Oracle数据库的区别 (1) 对事务的提交 MySQL默认是自动提交,而Oracle默认不自动提交,需要用户手动提交,需要在写commit;指令或者点击commit按钮 (2) 分页查询 MySQL是直接在SQL语句中写"select... from ...where...limit x, y",有limit就可以实现分页;而Oracle则是需要用到伪列ROWNUM和嵌套查询 (3) 事务隔离级别 MySQL是read commited的隔离级别,而Oracle是repeatable read的隔离级别,同时二者都支持serializable串行化事务隔离级别,可以实现最高级别的 读一致性。每个session提交后其他session才能看到提交的更改。Oracle通过在undo表空间中构造多版本数据块来实现读一致性,每个session 查询时,如果对应的数据块发生变化,Oracle会在undo表空间中为这个session构造它查询时的旧的数据块 MySQL没有类似Oracle的构造多版本数据块的机制,只支持read commited的隔离级别。一个session读取数据时,其他session不能更改数据,但 可以在表最后插入数据。session更新数据时,要加上排它锁,其他session无法访问数据 (4)

SQL Server 2017错误日志中出现“Parallel redo is shutdown for database 'xxx' with worker pool size [2]."浅析

二次信任 提交于 2020-08-13 08:00:53
在SQL Server 2017的错误日志中出现"Parallel redo is started for database 'xxx' with worker pool size [2]"和 “ Parallel redo is shutdown for database 'xxx' with worker pool size [2]. ” 这种信息,这意味着什么呢? 如下所示 Date 2020/5/16 11:07:38 Log SQL Server (Current - 2020/5/16 11:08:00) Source spid33s Message Parallel redo is started for database 'YourSQLDba' with worker pool size [2]. Date 2020/5/16 11:07:38 Log SQL Server (Current - 2020/5/16 11:08:00) Source spid33s Message Parallel redo is shutdown for database 'YourSQLDba' with worker pool size [2]. 其实这个要涉及 parallel redo 这个概念,官方文档有详细介绍,摘抄部分如下【详情请见参考资料】: When

SQL Server 替换 not in 的用法

亡梦爱人 提交于 2020-08-13 07:12:10
select * from T_A a (nolock) where a.xh not in (select xh from T_B) 方法1:效果甚微 select * from T_A a (nolock) where not exists (select xh from T_B where xh=a.xh) 方法2:效果比想象的要好。 select * from T_A a (nolock) left join T_B b on b.xh=a.xh where b.xh is null 来源: oschina 链接: https://my.oschina.net/u/4398140/blog/4406194

Windows 更新失败循环重启,错误c0000034正在应用更新

浪尽此生 提交于 2020-08-13 06:26:49
笔者最近公司的服务器是IBM 3650 m4上安装 Windows Server 2012 R2 Standard x64位操作系统。 至于为什么安装这个操作系统,就不赘述了。历史原因,交接人已经不在,无法了解操作系统的当时的安装背景。 笔者接手时经常有程序破解那台电脑上面的SQL Server 2012的sa口令,被360(笔者从2007-2008年就拒绝使用 360任何产品了)拦截住了。无奈之下更新系统,第一天更新完成以后还没重启,因为上面有虚拟机。后来又安装了 一次更新。 一天重启,由于应用更新时间太长,以为假死了,手贱重启了。   然后就是下面的界面循环、不停重启(图片来自网络)。      然后就悲剧了,F8后各种启动方式都尝试过(最后一次安全配置、安全模式等)全部无效。能看到最友好的界面如下。   不管怎么操作都没有效果。 后来看到上面的界面,想到用Rufus安装Windows Server 2012 Standard R2 x64到u盘,启动后然后选择 修复计算机(R) 最终进入命令行模式,依次执行以下命令 cd Windows\Winsxs rem 查找pending开头的文件或者目录 dir pending* rem 重命名挂起的操作 ren Pending.xml Pending_old.xml rem 写入空文件 echo > pending.xml rem

存储过程——C#中调用存储过程的简单示例

强颜欢笑 提交于 2020-08-13 06:15:35
目录 0. 简介 1. 语法细节 2. 示例1:模拟转账 3. 示例2:测试返回DataTable 4. 源代码下载 shanzm-2020年5月3日 23:23:44 0. 简介 【定义】: 存储过程(Stored Procedure) 是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 【优缺点】:存储过程优缺点都非常的明显!几乎每一篇讨论存储过程的文字,都是会说其他优点是balabala,缺点是balabala,然而最后作者的结论都是: “我不推荐使用存储过程” 。 具体的存储过程的优缺点这里就不详述了! 公司旧项目使用存储过程实现业务逻辑,没办法只能研究了一下 🙃! 闲言碎语不要讲,书归正传,下面就开始存储过程! 1. 语法细节 变量与变量之间使用逗号隔开,语句结尾无标点符号 声明变量: declare @variate_name variate_type ,例如声明并赋值: declare @name nvarchar(50) ='shanzm' 变量赋值: set @variate_name =value 打印变量: print @variate_name begin……end 之间的SQL语句称之为一个代码块 可以使用 if……else 实现逻辑判断

Database之SQLSever:SQLSever数据库管理(GUI法/SQL命令语句法及使用大全)之详细攻略

ぐ巨炮叔叔 提交于 2020-08-13 01:44:26
Database之SQLSever:SQLSever数据库管理(GUI法/SQL命令语句法及使用大全)之详细攻略 数据库管理 注意:文件名称和路径不要有中文。 数据库管理操作的两种方法 共同点:都能完成相应的操作; 优缺点:命令行法更简单快捷,SQL语言不会变;而GUI法当软件更新时还需要重新学习软件功能。 T1、图形化用户界面GUI法 图形化用户界面方法,操作比较简单。 T2、SQL命令语句法 用SQL语句创建数据库、mdf、ldf、文件组:其实是向master注册一条信息; 点击SQL Server软件→中间工具栏→新建查询,输入命令行,SQL语言即可, (1)、SQL语言不区分大小写;每行结尾英文逗号,最一行则不要添加任何符号。 (2)、字符串用单引号,而Java中字符串用双引号。 (3)、仅执行被选中的命令:选中一行,点击执行按钮即可。 (4)、打开左边设计树,将需要的名字直接拖到编程区即可。 SQL命令语句法及使用大全 1、以案例为导向分别采用GUI法和SQL命令法两种方法实现 使用管理器创建一个电子商城E_Market :两种方法建立,要求是:数据库名称为E Market,包含一个数据文件mdf,初始容量为5MB,文件按15%自动增长,最大容量为100MB;一个日志文件ldf,初始容量1MB,不启用自动增长; 来源: oschina 链接: https://my

异常捕获&打印异常信息

偶尔善良 提交于 2020-08-13 00:54:39
存储过程——异常捕获&打印异常信息 目录 0. 背景说明 1. 建立异常信息表ErrorLog 2. 建立保存异常信息的存储过程 3. 建立在SQL Server中打印异常信息的存储过程 4. 建立一个用于测试的存储过程抛出异常进行测试 5. 参考信息 shanzm-2020年5月13日 0. 背景说明 之前极其的抱怨使用存储过程,觉得存储过程不应该出现在现在的新项目中, 但是最近研究存储过程,发现存储过程的优点也是及其的耀眼! 之前只盯着存储过程的缺点,有点一叶障目了。 前一周自己摸索着写的存储过程,写的太幼稚了,不规范。 之前在 《存储过程——C#中调用存储过程的简单示例》 中, 我们在存储过程中的事务中定义了一个临时变量 @sum ,在事务的每一句sql语句后都 @sum+@@error ,最后根据 @sum 是否为0来判断是否有异常, 如果没有异常则 @@error 为0,有异常则 @@error 值为错误代码,即一定不为0 所以,可以通过最终的 @sum 判断是否有异常, 但是有一点要说明的是, @@error 对那种重大错误无法捕捉,而且 @@error 只对其前一句sql语句生效 所以,建议还是使用 TRY……CATCH 这里定义一个捕获异常的存储过程,实现将存储过程中出现的异常记录在数据库的异常信息表中。 本示例中

SQL之 Stuff和For xml path

喜夏-厌秋 提交于 2020-08-13 00:05:29
示例 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 BBB 企业4 BBB 企业5 我想把这个表变成如下格式: 类别 名称 AAA 企业1,企业2,企业3 BBB 企业4,企业5 一开始挺头疼的(会了的肯定没有这种感觉,不会那必须是头疼啊(*^__^*) ),从网上找了点资料,算是找到一种比较简单方便的方法吧,现在大体总结一下,供大家共同学习。 原先的表名为Table_A,实现代码如下: select 类别, 名称 = ( stuff( (select ',' + 名称 from Table_A where 类别 = A.类别 for xml path('')), 1, 1, '' ) ) from Table_A as A group by 类别 这里使用了SQL Server 2005版本以后加入的stuff以及for xml path,先说下在上面这句sql中的作用,然后再详细的说明一下这两个的用法。 for xml path('') 这句是把得到的内容以XML的形式显示。 stuff((select ',' + ep_name from ep_detail where ep_classes = a.ep

《微软应用架构指南 (第2版)》

自闭症网瘾萝莉.ら 提交于 2020-08-12 23:12:50
**《微软应用架构指南 (第2版)》 ========== ========== ========== [作者] (美) Patterns & Practices [译者] (中) 朱晔 高翔 王敏 [出版] 电子工业出版社 [版次] 2010年11月 第1版 [印次] 2010年11月 第1次 印刷 [定价] 69.00元 ========== ========== ========== 【前言】 (P001) 开发人员和方案解决架构师通常是游走在“黄金方案”和“即时方案”之间。 架构就是利用现有的技术和工具来创造尽可能多的商业价值,一方面关注现有业务所提出的需求和限制,另一方面着眼于未来通过可伸缩性、灵活性以及可维护性等方面最大化价值。 【第01章】 【什么是软件架构】 (P003) 软件应用架构是一个结构化解决方案,这种结构化解决方案一方面可以满足所有技术和运营需求,另一方面可以满足常见的质量特性 (quality attribute) 要求,例如性能、安全以及可管理性等。它涵盖了受多重因素影响的一系列决策,每种决策对质量、性能、可维护性及应用程序总体的成功都有相当大的影响。 (P004) 一个失败的架构带来的风险包括软件不稳定、不能支持既有或将来的业务需求、或难以在生产环境中部署和管理。 系统在设计的时候需要考虑用户、系统 (IT基础结构) 和业务。对于每一个方面