摘要: 首先,sqlserver里的标识符有一定的规则,比如 你 create table abc 123(...) 那么中间含有空格,它不是符合规则的。 你会写做 create table [abc 123](....) 即以[]来定界标识符。quotename将 字串成为有效的标识符。 它有什么用呢? 我举个例子:你有个表名字叫做 aa[]bb 当某些应用动态语句查询时 你如何写呢 exec('select * from aa[]bb') ?Xset @sql='select * from ' + quotename('aa[]bb') exec(@ 阅读全文
posted @ 2013-03-19 14:34 .net刚入门 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 资料一1、停止数据库服务器,将数据库MDF文件和LDF文件复制备份一份 2、启动数据库服务器,删除置疑的数据库 3、仅用备份的数据库MDF文件附加数据库,sp_attach_db或者sp_attach_single_file_db可以附加数据库,出现类似下面的提示信息: 设备激活错误。物理文件名 'C:/Program Files/Microsoft SQL Server/MSSQL/data/myDb_Log.LDF' 可能有误。 已创建名为 'C:/Program Files/Microsoft SQL Server/MSSQL/Data/myDb_log.LDF& 阅读全文
posted @ 2013-03-19 14:12 .net刚入门 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 1、在c盘根目录建立test的文本文件,输入如下数据1 222 333 444 2 aaa bbb ccc2、创建测试表tb,并导入数据if object_id('tb') is not null drop table tb go create table tb(id varchar(10),code varchar(10),name varchar(10),remark varchar(10) ) goBULK INSERT tb FROM 'c:/test.txt' WITH ( FIELDTERMINATOR = ' ', ROWTERMI 阅读全文
posted @ 2013-03-19 14:11 .net刚入门 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 动态SQL:code that is executed dynamically。它一般是根据用户输入或外部条件动态组合的SQL语句块。动态SQL能灵活的发挥SQL强大的功能、方便的解决一些其它方法难以解决的问题。相信使用过动态SQL的人都能体会到它带来的便利,然而动态SQL有时候在执行性能(效率)上面不如静态SQL,而且使用不恰当,往往会在安全方面存在隐患(SQL 注入式攻击)。动态SQL可以通过EXECUTE 或SP_EXECUTESQL这两种方式来执行。(来自MSDN)EXECUTE执行 Transact-SQL 批中的命令字符串、字符串或执行下列模块之一:系统存储过程、用户定义存储过程、 阅读全文
posted @ 2013-03-19 14:07 .net刚入门 阅读(312) 评论(0) 推荐(0) 编辑
摘要: B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子的指针为空,则报告找不到相应的关键字; 如果B树的所有非叶子结点的左右子树的结点数目均保持差不多(平衡),那么B树的搜索性能逼近二分查找;但它比连续内存空间的二分查找的优点是,改变B树结构(插入与删除结点)不需要移动大段的内存 阅读全文
posted @ 2013-03-18 08:58 .net刚入门 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 1.1.1 摘要 在开发过程中,我们不时会遇到系统性能瓶颈问题,而引起这一问题原因可以很多,有可能是代码不够高效、有可能是硬件或网络问题,也有可能是数据库设计的问题。 本篇博文将针对一些常用的数据库性能调休方法进行介绍,而且,为了编写高效的SQL代码,我们需要掌握一些基本代码优化的技巧,所以,我们将从一些基本优化技巧进行介绍。 本文目录代码中的问题数据库性能开销使用存储过程使用数据库事务使用SqlBulkCopy使用表参数 1.1.2 正文 假设,我们要设计一个博客系统,其中包含一个用户表(User),它用来存储用户的账户名、密码、显示名称和注册日期等信息。 由于时间的关系,我们已... 阅读全文
posted @ 2013-03-15 14:59 .net刚入门 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 分区请三思: 1、虽然分区可以带来众多的好处,但是同时也增加了实现对象的管理费用和复杂性。因此在进行分区之前要首先仔细的考虑以确定是否应为对象进行分区。 2、在确定了为对象进行分区后,下一步就要确定分区键和分区数。要确定分区数据,应先评估您的数据中是否存在逻辑分组和模式。 3、确定是否应使用多个文件分组。为了有助于优化性能和维护,应使用文件组分离数据。文件组是数据库数据文件的逻辑组合,它可以对数据文件进行管理和分配,以便提高数据库文件的并发访问效率。 为了简化操作,SQL Server 2008中为表分区提供了相关的操作。 操作的顺序: 1、先定义文件组 2、指定哪些辅助数据库文... 阅读全文
posted @ 2013-03-15 14:57 .net刚入门 阅读(250) 评论(0) 推荐(1) 编辑
摘要: 哈希表算法-哈希表的概念及作用 一般的线性表,树中,记录在结构中的相对位置是随机的,即和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较“的基础上,查找的效率依赖于查找过程中所进行的比较次数。 理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。哈希表最常见的例子是以学生学号为关键字的成绩表,1号学生的记录位置在第一条,10号学生的记录位置在第10条...如果我们以学生姓名为关键字,如何建立查找表,使得根据姓名可以直接找到相应记录呢?.. 阅读全文
posted @ 2013-03-15 14:51 .net刚入门 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 简介 分区表是在SQL SERVER2005之后的版本引入的特性。这个特性允许把逻辑上的一个表在物理上分为很多部分。而对于SQL SERVER2005之前版本,所谓的分区表仅仅是分布式视图,也就是多个表做union操作. 分区表在逻辑上是一个表,而物理上是多个表.这意味着从用户的角度来看,分区表和普通表是一样的。这个概念可以简单如下图所示: 而对于SQL SERVER2005之前的版本,是没有分区这个概念的,所谓的分区仅仅是分布式视图: 本篇文章所讲述的分区表指的是SQL SERVER2005之后引入的分区表特性.为什么要对表进行分区 在回答标题的问题之前,需要说明的是,表分区这个特性只有.. 阅读全文
posted @ 2013-03-13 16:30 .net刚入门 阅读(181) 评论(0) 推荐(0) 编辑
摘要: PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。提供的语法比在SQL Server 2000用聚合函数配合CASE语句实现的语法更简单和更具可读性。在我们进行复杂的查询统计的时候,特别是销售统计、处理大量数据的时候,PIVOT的作用就显得非常突出。注意:PIVOT、UNPIVOT是SQL Server 2005 的语法,使用需修改数据库兼容级别 在数据库属性->选项->兼容级别改为 90SELECT <non-pivoted column>, [first pivoted column] A 阅读全文
posted @ 2013-03-13 16:15 .net刚入门 阅读(224) 评论(0) 推荐(0) 编辑