随笔分类 - 08-关于数据
摘要:方法一:如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数truncate table 表名方法二:DBCC CHECKIDENT (''table_name'', RESEED, new_reseed_value)当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,以
阅读全文
摘要:转自http://blog.csdn.net/xywhere/article/details/6044462设计者们定义日期类型的时候,一共制定了两套:Date 和 Datetime 类型,Date是日期的,如:2010-3-15Datetime日期及时间的,如:2010-3-15 12:01:56:469假设你要比较的两个时间都是Datetime类型数据,它们不相等的可能性也许是99.99%,因为不仅日子要一样,而且小时、分钟、秒、微秒都要相等,那才算是一致。假设交易日期这个数据是今天上午产生的,开始日期是今天下午生成的,那么,肯定不相等了。所以你要让同一天(不管几点钟)的相关联,那就用个函
阅读全文
摘要:转自http://www.cnblogs.com/Gavinzhao/archive/2009/11/10/1599690.htmlsql server2000中使用convert来取得datetime数据类型样式(全)日期数据格式的处理,两个示例:CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/语句及查询结果:Select CONV
阅读全文
摘要:资料来源http://www.cnblogs.com/careyson/archive/2011/12/22/2297568.htmlhttp://www.cnblogs.com/aspnethot/articles/1504082.html索引索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。聚集为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚集码)上具有相同值的元组集中存放在连续的物理块称为聚集。在SQL SERVER中,聚集的作用就是将某一列(或是多列)的物理顺序改变为和逻辑顺序相一致。聚集索引因为聚集索引改变的是其所在表的物理存
阅读全文
摘要:对数据类型null的处理 当C#与SQL Server数据类型定义不一致时需要怎么处理呢? 例如一个DateTime,当DB中该字段可以为空时,要求它既能用C#的DateTime赋值,又可以赋SQL Server的null值。 我采用的解决方法是,在Model对应的类中,将该字段对应的property的数据类型设为object。 赋值时,判断,若是空值则赋给DBNull.Value。 取值时,判断,若取到DBNull.Value则显示null,否则要进行一次数据转换。这是为了DA在对DB操作时,若将此字段作为参数,只需要将get到的值直接赋给salParameter即可。(若model的get
阅读全文
摘要:SSRS目录下包括两个数据库:Report Server数据库(默认名是ReportServer)和ReportServer临时数据库(默认名是ReportServerTempDB)。Report Server数据库是一个SQL Server数据库它能够存储SSRS配置部分,报告定义,报告元数据,报告历史,缓存政策,快照,资源,安全设置,加密的数据,调度和提交数据,以及扩展信息。 注意 尽管用户能够直接存取在SSRS目录下的数据库并且能够直接修改SSRS使用的对象;但在实践中,不推荐(或不支持)这样做,因为在SSRS目录下的内在数据和结构不能被保证与不同版本的SSRS、服务包或补丁相兼容。 请
阅读全文
摘要:切割字符串,一般是不会通过数据库函数来处理的(大部分是查询出结果后通过代码处理的),但是也有特殊的情况;比如:Oracle数据库有一张表Node,字段有:ID:主键parentID:父节点STATID:查询编码NAME:名称STATNAME:查询名字SCALE:父子级别看的出,这是张存储父子结构关系的表,而STATID的左右就是把父子结构的关系拼接起来:比如,某记录为:IDparentIDSTATIDNAMESTATNAMESCALE011华南华南103011s3上海华南s上海205031s3s5浦东新区华南s上海s浦东新区3很容易看的出三条记录的父子结构,而STATID就是把当前记录的所有父
阅读全文
摘要:SQL Serverreplace ('field_name','from_str','to_str')说明:cdb_name 该字符或字符串所在表的名字field_name 该字符或字符串所在字段的字段名from_str 需要替换的字符串to_str 替换成的字符串--替换回车UPDATE table_nameSET field_name=REPLACE(field_name,CHR(13),'')WHERE INSTR(field_name,CHR(13))>0 --替换换行UPDATE table_nameSET fi
阅读全文
摘要:--oracle select rtrim('where aa=0 and b=1 and','and')--要求获得where aa=0 and b=1 在sql中没有类似于oracle的rtrim(,)的方法故用以下方法--SQLdeclare @s nvarchar(50) declare @dd nvarchar(50) declare @sp_name nvarchar(50)set @sp_name='where aa=0 and b=1 and bb=3 and' select @sp_nameset @dd=reverse(@sp
阅读全文
摘要:基本上每次用到存储过程都要到网上查一遍,今天自己整理了一份基础知识不啰嗦了,网上到处都有,直接贴整理好的代码基本语法Create Procedure dbo.存储过程名存储过程参数AS执行语句RETURN执行存储过程GOEg:-- 要创建存储过程的数据库Use Test-- 判断要创建的存储过程名是否存在if Exists(Select name From sysobjects Where name='csp_AddInfo' And type='P')-- 删除存储过程Drop Procedure dbo.csp_AddInfoGo-- 创建存储过程Creat
阅读全文
摘要:触发器在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 两个临时的表:Deleted , Inserted 。注意Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。 一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录一个数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别是: 虚拟表Inserted虚拟表D
阅读全文
摘要:从A表随机取2条记录,用SELECT TOP 10 * FROM ywle order by newid() order by 一般是根据某一字段排序,newid()的返回值 是uniqueidentifier ,order by newid()随机选取记录是如何进行的 newid()在扫描每条记录的时候都生成一个值, 而生成的值是随机的, 没有大小写顺序. 所以最终结果再按这个排序, 排序的结果当然就是无序的了 或者 select top 10 *,newid() as Random from ywle where ywlename='001' ordey by Random
阅读全文
摘要:在sqlserver 数据库中,循环语句是最常用的语句之一,下面就将为您分析SQL循环语句的例子,供您参考,希望对您有所启迪。SQL循环语句SQL循环语句--------------------------while 条件while 条件设置重复执行 SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。语法View Code参数Boolean_expression返回 TRUE 或 FALSE 的表达式。如果布尔表达式中含有 SELECT 语句,必须用圆括号将 SELECT 语句括起来。
阅读全文
摘要:转自http://blog.163.com/sdq_1314/blog/static/16690825420106268545147/SQL Server 返回最后插入记录的自动编号ID最近在开发项目的过程中遇到这么一个问题,就是在插入一条记录的后立即获取其在数据库中自增的ID,以便处理相关联的数据,怎么做?在sql server 2000中可以这样做,有几种方式。详细请看下面的讲解与对比。一、要获取此ID,最简单的方法就是:(以下举一简单实用的例子)--创建数据库和表create database MyDataBaseuse MyDataBasecreate table mytable(id
阅读全文
摘要:CAST将某种数据类型的表达式显式转换为另一种数据类型。语法:CAST( expression AS data_type )CAST(ytd_sales AS char(20)) 作者:ITBear 出处:http://www.cnblogs.com/IT-Bear/ 关于作者:菜鸟一枚。如有问题或建议,请多多赐教! 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过tangyuting2011@foxmail.com 联系我,非常感谢。
阅读全文
摘要:1.内连接 [inner] join 通过比较被联接的表所共有的字段,把多个表联接起来 select 列名 from 表名1 [inner] join 表名2 on 表名1.列名 <比较运算符> 表名2.列名2.左外连接 left [outer] join 左外联接的结果表中除了满足连接条件的行,还包括左表中的所有剩余行, 但不包括右表中的不匹配行,使用左外联接时,请注意:(1)不满足联接条件的记录将显示空值(2)左联接可以显示左表中所有记录(3)可以把 LEFT OUTER JOIN 简写为 LEFT JOINselect 列名 from 表名1 left [outer] j..
阅读全文
摘要:转自http://www.cnblogs.com/diaoxw/archive/2012/02/01/2334318.html我们不但会写SQL,还要做到写出性能优良的SQL,今天看了别人的文章,感觉很好、自己又加工了一下, 贴出来与大家分享,如果你还有好的经验 也拿出来分享一下(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选
阅读全文
摘要:触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。Ø 什么是触发器 触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。SQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有cr
阅读全文