数据库 DataBase
9月21

      最近在使用SQL查询数据库,做个小程序,但是在做到显示的时候遇到了个小问题:SQL Server没有分页的功能,只能自己写了。百度GOOGLE了一下,找了几个常用的方法,用起来效果还不错,分别是使用TOP关键词来对SQL Server进行分页操作,使用存储过程来对Sql Server来进行分页操作和使用上次读取的结果来进行操作。

      详细记录如下,希望对大家有用:)



9月17

      新装的SQL SERVER 2008,打开原来SQL SERVER 2008中建立的表,现在想增加一些字段,在保存时提示错误,无法保存。

      刚开始以为是SQL SERVER 2008与2005的不兼容,后来发现在SQL SERVER 2008中新建的表也存在无法修改表结构,也就是无法修改字段名和增加字段名。

      提示是:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。
9月9
  SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。
  在现今数据的世界里,公司要获得成功和不断发展,他们需要定位主要的数据趋势的愿景。微软的这个数据平台愿景帮助公司满足这些数据爆炸和下一代数据驱动应用程序的需求。微软将继续投入和发展以下的关键领域来支持他们的数据平台愿景:关键任务企业数据平台、动态开发、关系数据和商业智能。


从安装程序看,感觉SQL Server 2008的设计更灵活、更精确,安装速度在我的笔记本上装的虚拟机(分配了768M内存)中比较流畅,感觉比2005要好。
Tags: , , , , ,
6月3
      delete: Use the DELETE statement to remove rows from a table, a partitioned table, a view's base table, or a view's partitioned base table.

      truncate:Use the TRUNCATE statement to remove all rows from a table or cluster. By default, Oracle also deallocates all space used by the removed rows except that specified by the MINEXTENTS storage parameter and sets the NEXT storage parameter to the size of the last extent removed from the segment by the truncation process.

      truncate的功能可以拆分为:dropping + re-creating a table,但truncate的效率要高。因为truncate无须考虑表索引、约束、触发器等的重建。

      另外truncate执行后,无法回滚(roll back)

      HWM(high water mark,最高水位线):The high water mark is divides a segment into used blocks and free blocks Blocks below the high water mark (used blocks) have at least once contained data. This data might have been deleted. Since Oracle knows that blocks beyond the high water mark don't have data, it only reads blocks up to the high water mark in a full table scan(FTS).在oracle10g中增加了调整HWM的命令:alter table xxx shrink space。

      以下网上达人总结的truncate与delete区别:
6月2
导出部分:

1、在SQL EDITOR中写出你所需要得到数据的SQL语句,然后运行。
      
点击在新窗口中浏览此图片

2、然后在下方数据区按鼠标右键,点击 SAVE AS 项

点击在新窗口中浏览此图片    
5月26
nvl( ) 函数


从两个表达式返回一个非 null 值。

语法

NVL(eExpression1, eExpression2)

参数
eExpression1, eExpression2

如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。

返回值类型

字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

说明

在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。

select nvl(a.name,'空得') as name from student a join school b on a.ID=b.ID

注意:两个参数得类型要匹配
5月26
  首先介绍一下什么是存储过程:存储过程就是将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,并且这样的语句是放在数据库中的,还可以根据条件执行不同SQL语句, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。
  请大家来了解一下存储过程的语法。
  CREATE PROC [ EDURE ] procedure_name [ ; number ]
    [ { @parameter data_type }
        [ VARYING ] [ = default ] [ OUTPUT ]
    ] [ ,...n ]
  [ WITH
    { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
  [ FOR REPLICATION ]
  AS sql_statement [ ...n ]
  参数:
  procedure_name
  新存储过程的名称。过程名必须符合标识符规则,且对于数据库及其所有者必须唯一。
  要创建局部临时过程,可以在 procedure_name 前面加一个编号符 (#procedure_name),要创建全局临时过程,可以在 procedure_name 前面加两个编号符 (##procedure_name)。完整的名称(包括 # 或 ##)不能超过 128 个字符。指定过程所有者的名称是可选的。
  ;number
  是可选的整数,用来对同名的过程分组,以便用一条 DROP PROCEDURE 语句即可将同组的过程一起除去。例如,名为 orders 的应用程序使用的过程可以命名为 orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc 语句将除去整个组。如果名称中包含定界标识符,则数字不应包含在标识符中,只应在 procedure_name 前后使用适当的定界符。
9月28
  直接使用SQL Server企业管理器修改某个数据库表的记录时,如果表的数据比较多,经常就会遇到这样的问题:修改完数据后关闭表时会提示:“在流水模式下,事务无法启动”。重新打开表,发现修改数据失败。

  解决方法:为了使数据库的访问效率更高,打开表时管理器只提取前面的一部分内容,所以在修改数据前先拖动滚动条至表中所有数据完全显示一遍,全部读取出来,然后再进行修改就OK了。
Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]