
数据库(SQLServer)
文章平均质量分 68
Cassaba
这个作者很懒,什么都没留下…
展开
-
SQL Server 移植到Oralce 项目实战
项目背景 移植一个现有系统到Oracle。原系统基于.Net Framework 1.1, SQL Server 2000数据库,数据操作基本全部使用Store Procedure,总数逾千,因此总体涉及的PL SQL 开发量比较大。 优先级高,开发时程短,参与人员多,是这个项目的显著特点。本人作为项目负责人,主要按照下列步骤进行,最终圆满达成目标。 第一步原创 2009-11-09 13:21:00 · 1427 阅读 · 0 评论 -
SQL Server 与 Oracle数据类型映射
Microsoft SQL ServerOracleCommentBIGINTNUMBER(19) BINARYRAW-BITNUMBER(3)-CHARCHAR-DATE转载 2015-08-18 08:52:04 · 1044 阅读 · 0 评论 -
SQL Server中的Null值解析
NULL是数据库中特有的数据类型,当一条记录的某个列为NULL,则表示这个列的值是未知的、是不确定的。既然是未知的,就有无数种的可能性。因此,NULL并不是一个确定的值。这是NULL的由来、也是NULL的基础,所有和NULL相关的操作的结果都可以从NULL的概念推导出来。判断一个字段是否为NULL,原创 2009-10-30 15:50:00 · 5247 阅读 · 2 评论 -
寻找黑洞
做一回标题党!这不是一个探索宇宙的问题,实际问题如下: 某表base_table,千万数据级别,其中ID列为数字,从1开始。请找出该列中的不连续数字。 我给出的大体思路是先构建一个初始为1~10000的序列表,然后循环步进关联基础表进行筛选。代码如下:declare @begin_on datetime--记录开始时间select原创 2011-11-08 10:41:39 · 849 阅读 · 0 评论 -
获取Insert语句的存储过程
SQL Server Enterprise Manager本身提供了生成各种对象Script的功能,却唯独没有生成Insert语句的功能,一直以来让我耿耿于怀!后来看到一位网友采用SP倒出insert语句的代码,自己略加整理和完善,不敢敝帚自珍,现在与大家分享: 该SP可以倒出整个表所有的数据的insert语句,也可以根据条件倒出部分。不足之处在于不支持一些特殊类型的数据倒出,如tex原创 2006-06-28 14:34:00 · 2256 阅读 · 3 评论 -
SQL Server 数据库设计经验总结
平时大大小小的数据库,面向产品的,面向项目的,数据库设计了不少。总结了一些个人经验如下,供大家探讨。 1. 表命名1) 使用多段式单词,单词之间用下划线分割;2) 相同性质的表,适用分组前缀。能从命名上看出哪些表属于一组如实例数据表以instance_开头,instance_form_header, instance_form原创 2008-12-09 15:34:00 · 1908 阅读 · 0 评论 -
Oracle中的Null值解析
有人总结了数据库中Null值的概念,比较精炼,摘录如下:Null是数据库中特有的数据类型,当一条记录的某个列为Null,则表示这个列的值是未知的、是不确定的。既然是未知的,就有无数种的可能性。因此,Null并不是一个确定的值。这是Null的由来、也是Null的基础,所有和Null相关的操作的结果都可以从Null的概念推导出来。判断一个字段是否为Null, 应该用原创 2009-11-04 16:50:00 · 3516 阅读 · 1 评论 -
数据记录行转列
数据库有Score表的数据如下:tname subjectscorestu1Chinese80stu1English60stu1Math75stu2Chinese80stu2English85stu3Chinese85stu3原创 2008-12-09 15:50:00 · 929 阅读 · 0 评论 -
获取序列化ID方法探讨
获取序列化ID方法探讨 在数据库开发过程中,我们经常需要在表的某一列上产生唯一的ID,以作为表的标志列.那么如何产生这些ID号并且保证其唯一性呢? 根据以往开发经验,总结方法不外乎以下几种:1. 采用某列最大值加1的方式, 作为下一个序列号,如:SELECT @MAXID = MAX(COL) + 1 FROM CASSABAINSERT INTO原创 2006-11-29 12:37:00 · 6784 阅读 · 1 评论 -
使用系统表存储标记
有这样一个场景,要把一段SQL Script发布到多个产品服务器,并且必须保证这段Script可以重复执行。最自然的想法当然是在数据库中放置一个标记,根据这个标记来决定判断是否 是首次执行。问题在于把这个标记放到哪里,在应用数据库某个表中新增记录?显然不是个好主意!我想到的比较好的方法是,借用sysproperties表 来帮我们存储这个标记。见下面的范例: SET XACT_AB原创 2006-08-02 10:25:00 · 1256 阅读 · 0 评论 -
同步差异数据
同步数据,我们比较关心的是如何尽可能地减少每次的同步数据量,以提高同步效率,降低对网络带宽的消耗。对于大批量的数据同步,这一点尤其需要考虑。如果解决这个问题呢,我认为关键点在于获取差异数据,也就是说,我们只同步变化了的数据,没有变化的,就不用同步。 就此,我总结了5种方法,各种方法各有优劣,下面一一道来。 1.SQLServer本身的复制服务本身支持多种数据原创 2006-06-28 13:49:00 · 2522 阅读 · 0 评论 -
Oracle和SQLServer 数据类型映射
要同时支持Oracle 和SQLServer数据库,表设计的时候,栏位的数据类型是其中一个考虑因素。我采取的原则很简单:尽可能少的引入数据类型。然后根据下面的表格进行对应。OracleSQL ServerNUMBER(p[,s])decimal(p[,s])NUMBER(3,0)int原创 2014-01-20 10:27:51 · 1766 阅读 · 0 评论 -
获取栏位参数列表
平时总会写一些存储过程,有的参数基本上是和表的栏位一一对应,如果C/P,既麻烦又容易出错,下面的SP可以生成指定表的栏位和参数列表:SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO--exec CassabaBuildSP 'dbo.Categories'CREATE procedure CassabaBuildSP原创 2006-06-30 10:54:00 · 1121 阅读 · 0 评论 -
SQL SERVER 数据库设计经验总结
按照一定的规范进行数据库设计,至少有下面几点好处1) 便于项目组的成员快速了解数据结构2) 减少应用开发中错误3) 便于开发一些自动工具,生成可读性较高的代码4) 便于和其他系统整合5) 便于后期的维护,升级,扩展 下面是我多年来数据库设计经验的总结,供大家参考。1. 表命名1) 表名采用大写2) 使用原创 2011-01-28 09:22:00 · 903 阅读 · 0 评论 -
SQL/Oracle 两表关联更新
有TA, TB两表,假设均有三个栏位id, name, remark. 现在需要把TB表的name, remark两个栏位通过id关联,更新到TA表的对应栏位。建表脚本:drop table TA;create table TA(id number not null,name varchar(10) not null,remark varchar(10) not null)原创 2011-11-18 10:09:21 · 22503 阅读 · 0 评论 -
SQL Server Primary Key和Clustered Index
在创建Table设定主键的时候,SQL Server会自动创建一个对应的Clustered Index。如果使用Microsoft SQL Server Management Studio工具,发现这个Clustered Index只能删除,不能通过界面进行修改。这让人误以为在主键上只能建立Clustered Index, 实际上却不是这样的。 如果通过Script 创建,我们可以指定在主原创 2016-07-27 10:58:30 · 9258 阅读 · 0 评论