分手快乐 发表于 2015-1-16 22:38:37

MSSQL网页设计在MSSQL中完成Sequence功能

导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。
目标:经由过程该功效代替MSSQL中的表ID列主动递增功效



主题一:怎样经由过程Sequence名失掉一个Sequence值

办法:

1.创立一个表Sequence,保留Sequence的值

2.创立一个存储历程GetNextSequence,以经由过程它失掉下一个Sequence

主题二:怎样经由过程一个表名失掉一个Sequence值

1.创立一个表TableSequence,保留表中的列对应的是哪一个Sequence

2.创立一个存储历程CreateTableSeq,把表TableSequence的内容放进全局一时表@@TmpTableSequence,以进步功能

3.创立一个存储历程GetNextSequenceByTableName,以经由过程它失掉下一个Sequence



主题一:怎样经由过程Sequence名失掉一个Sequence值

办法:

1.创立一个表Sequence,保留Sequence的值

表Sequence:

表名

数据范例

是不是为空

索引

申明

SEQNAME

varchar2(50)

N

PK

Sequence名

STARTWITH

number

N



入手下手值

INCREMENT

number

N



增量

LASTVALUE

number

N



该Sequence最初的值

MINVALUE

number

N



最小值

MAXVALUE

number

N



最年夜值,0暗示无

CYCLE

bit

N



是不是可轮回



2.创立一个存储历程GetNextSequence,以经由过程它失掉下一个Sequence

参数:

SeqNameSequence称号

前往:

下一个Sequence的值,如堕落,前往0

流程:

1.该存储历程经由过程参数SeqName从表Sequence获得LastValue

2.LastValue加上递增或递加值,失掉下一个Sequence值(简称@NewSeq)

3.用@NewSeq更新该笔记录

4.前往@NewSeq



主题二:怎样经由过程一个表名失掉一个Sequence值

1.创立一个表TableSequence,保留表中的列对应的是哪一个Sequence

表TableSequence

表名

数据范例

是不是为空

索引

申明

TABLENAME

varchar2(50)

N

PK

表名

SEQNAME

varchar2(50)

N



Sequence名



2.创立一个存储历程CreateTableSeq,把表TableSequence的内容放进全局一时表@@TmpTableSequence,以进步功能

参数:



前往:



流程:

1.判别一时表@@TmpTableSequence是不是存在

2.如不存在,创立该一时表(表格局同TableSequence),并从TableSequence获得数据,放进一时表@@TmpTableSequence

3.创立一个存储历程GetNextSequenceByTableName,以经由过程它失掉下一个Sequence

参数:

@TableName表名

前往:

下一个Sequence的值,如堕落,前往0

流程:

1.该存储历程经由过程参数@TableName从表@@TmpTableSequence获得Sequence名(简称@SeqName)

2.经由过程@SeqName从表Sequence获得LastValue

3.LastValue加上递增或递加值,失掉下一个Sequence值(简称@NewSeq)

4.用@NewSeq更新表Sequnce的对应纪录
前往@NewSeq


以上是实际,稍后,我会给出详细做法。在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。

老尸 发表于 2015-1-19 20:06:30

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

愤怒的大鸟 发表于 2015-1-26 20:11:07

代替了原来VB式的错误判断。比Oracle高级不少。

再现理想 发表于 2015-2-4 20:24:47

我们学到了什么?思考问题的时候从表的角度来思考问

爱飞 发表于 2015-3-1 01:31:21

语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!

分手快乐 发表于 2015-3-10 11:26:49

多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油

乐观 发表于 2015-3-17 06:34:12

财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..

不帅 发表于 2015-3-24 00:06:55

很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
页: [1]
查看完整版本: MSSQL网页设计在MSSQL中完成Sequence功效