网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle listener静态注册和动态注.
.SQLPlus命令使用指南(一).
.配置Oracle Name Server的完全步.
.Oracle数据库自动启动失灵.
.UNIX工作站对远程ORACLE FOR Net.
.如何使SQL Server数据库支持XML.
.Oracle TNSListener服务启动后自.
.如何设置Qmail以增加并发发送进程.
.在Oracle9i中建立SPFILE文件.
.Oracle Fast-Start Fault Recove.
.教你快速掌握Oracle数据库结构的.
.Oracle数据库中快照的使用.
.使用Oracle 10g MERGE语句更新数.
.查出任一年月所含的工作日.
.Oracle中使用SQL MODEL定义行间计.
.在Linux环境下超频你的NVIDIA的显.
.视图的概念.
.数据库学习指南Oracle数据安全面.
.Oracle9i初始化参数中文说明7.
.正确的数据库设计确保了数据完整.

如何在sqlserver2000中实现oracle的序列

发表日期:2008-2-9


Oracle中的序列蛮好用的,但是在sqlserver中却没有,您也许会说我可以用IDENTITY来代替啊!当然可以,但是一个表中只能有一个IDENTITY字段!我要是想在一个表里使用多个类似IDENTITY的字段呢?如是oracle,用序列就可以实现,只要给该字段指定一个序列就可以了!在SQLSERVER中如何实现呢?SQL2000可以有自定义函数,我们可以自定义一个函数,来产生一个序列,然后在给需要使用该序列的字段指定该函数即可!下面是一个例子:
假设:
存在表
CREATE    TABLE    tmp
(
    identityID    INT identity(1,1) PRIMARY KEY,
    iID        INT,
    sName        CHAR(2)
)
GO
其中identityID是一个IDENTITY字段,
我们创建以下函数:
CREATE    FUNCTION    sqlSequence()
RETURNS    INT
AS
BEGIN
    DECLARE    @MINNUM    INT
    DECLARE    @MAXNUM    INT
    SET    @MINNUM=2   
    SET    @MAXNUM=99
/*
    您可以设置该函数答应的最大(99)、小(2)值,代表从取2-99,超过此最大值返回0(您可以加上自己的处理),
    仿oracle的sequence中的设置
*/
    RETURN(    SELECT CASE   
            WHEN    ISNULL(MAX(iID),@MINNUM-1)+1 >@MAXNUM THEN    0
            ELSE    ISNULL(MAX(iID),@MINNUM-1)+1
               END
        FROM TMP)
END
GO
然后给表tmp的字段iID的默认值指定为dbo.sqlSequence(),
然后再插入时使用如下语句即可
insert into tmp(sname) values('1');
插入一些记录后看看效果吧!
其实还可以给该函数加上更多的功能,如可以返回一个降序的序列,
也可以返回一个字符串的序列。
上一篇:Oracle数据库重复数据删除技术的四大优势 人气:683
下一篇:图文:详解数据库Oracle 11g的基本安装 人气:2187
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐