代码改变世界

随笔分类 -  SqlServer

BEGIN TRANSACTION

2012-11-06 14:28 by dreamhappy, 426 阅读, 收藏, 编辑
摘要: BEGIN TRANSACTION 用于开始一个本地事务,一般与commit一起使用,切忌这里的Begin不是与End匹配BEGIN TRANSACTIONCOMMIT TRAN以下是BEGIN TRANSACTION需要注意的几点1 BEGIN TRANSACTION 使 @@TRANCOUNT 数量加12 ROLLBACK TRANSACTION 将 @@TRANCOUNT 递减到 03 要求具有public角色的成员才有权限执行BEGIN TRANSACTION 阅读全文

我的程序优化-尽量减少数据库连接操作

2012-05-02 22:55 by dreamhappy, 7069 阅读, 收藏, 编辑
摘要: 最近做一个项目,做的比较郁闷,现在把项目经验总结在这里。项目的主要功能就是为第三方程序提供数据,并根据客户端的调用提供数据更新。我的程序属于服务端。服务端以站点形式部署,以Xml的数据格式输出。项目以我自己的设计编码完成,并整合测试。初始化数据时,问题出现了。刚开始体现在客户端接受数据很慢。测试环境环境下,数据库服务器部署在国外,网站部署在公司内部,而且我一直认为我的程序在数据库数据处理这里已经做了足够的优化,包括索引和主键已经做到了合理使用。综上所述,起初的速度问题一直没有引起我的关注。然而最后问题的关键恰恰出在数据库连接查询方面,频繁查询导致数据初始化速度很慢。刚开始我采取的方法是即用即查 阅读全文

阻止保存要求重新创建表的修改

2012-03-11 11:05 by dreamhappy, 842 阅读, 收藏, 编辑
摘要: 我的电脑数据库版本是Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) 在用数据库表设计器设计表结构时出现如上错误 阻止保存要求重新创建表的修改解决方法:在菜单栏的工具选项中的设计器选项卡中 取消阻止保存要求重新创建表的修改基于以上出现的问题的扩展,所以有人建议修改表的话最好使用Alter语句,如果使用可视化编辑的话就会将表删除重建 阅读全文

.net实体新解

2011-11-15 19:14 by dreamhappy, 2725 阅读, 收藏, 编辑
摘要: 传统的开发模型中一般会有一个实体层(这里的实体和MVC开发框架中的实体不是一个概念),这个实体层中的类,是数据库表在应用程序的映射,甚至类名称会与表一一对应.虽然是类,但是组成却只有属性,没有方法.这类实体的作用是传递数据的载体,简洁明了,例如当一个方法参数个数超过3个,而这这三个参数又代表一个表的相应字段时,他们就可以用一个实体类代替.以上算是实体类的一个优势,当然它的优势不仅如此.我们想想在数据层返回查询数据时,有几种格式?一般会返回单个字段,单个DataTable,甚至是DataSet单个字段很明了,我们暂且不提.说说DataTable,既然是DataTable,就是行的集合,每一行就可 阅读全文

服务器角色

2011-11-02 11:20 by dreamhappy, 345 阅读, 收藏, 编辑
摘要: 服务器角色意思Bulkadmin执行 Bulk Insert语句Dbcreator创建和改变数据库Diskadmin管理磁盘文件Processadmin管理在 SQL Server实例中运行的进程Securityadmin管理服务器登陆Serveradmin配置服务器范围的设置Setupadmin添加和删除链接服务器,并执行某写系统存储过程(如 sp_serveroption)Sysadmin在SQL Server中进行任何活动。该角色的权限跨越所有其他固定服务器角色转自:http://www.cnblogs.com/fengbiworkroom/archive/2009/08/01/1536 阅读全文

SQL查询今天与昨天的记录,及本月记录、本周记录

2011-10-26 21:40 by dreamhappy, 5022 阅读, 收藏, 编辑
摘要: 数据操作中涉及到统计的部分主要借助数据库内置函数完成SQL查询今天的记录:datediff(day,[Datetime],getdate())=0 把Datetime换为你的相应字段;SQL查询昨天的记录:datediff(day,[Datetime],getdate())=1 把Datetime换为你的相应字段,getdate()-Datetime即为时间差。本月记录:SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0本周记录:SELECT * FROM 表 WHERE datediff(week,[dateadd],get 阅读全文

修改MSSQL自增列标识值

2011-10-26 13:41 by dreamhappy, 5081 阅读, 收藏, 编辑
摘要: 执行数据库插入语句IF EXISTS (SELECT 1 FROM [Tag] WHERE [Name]='发哥') BEGIN SELECT [ID] FROM [Tag] WHERE [Name]='发哥' END Else BEGIN INSERT INTO Tag([Name]) VALUES('发哥');Select SCOPE_IDENTITY() END 以上语句查询能够查出没有标签名为'发哥'的信息,但是又不能插入新值,提示有违背主键唯一性约束的错误,怎么回事?答案: 数据库自增列自动生成出问题了自增列种子值有时候 阅读全文

我之前有过的ASP.NET数据层访问方法

2010-09-05 15:51 by dreamhappy, 683 阅读, 收藏, 编辑
摘要: 今天在博客园开博,希望能够在这个开放的平台上学到更多,也希望自己能够经常抽出时间增加博客数量,在写博客的同时思考程序代码,思考编程思想,同时沉淀技术. 把我之前做三层Web开发的数据层访问代码拿出来讨论:大家可以在阅读代码后留下自己的看法。首先是获得数据库连接对象,我采用的是sqlServer2005数据库Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 privatestatic SqlConnection connection; 2 阅读全文