zoukankan      html  css  js  c++  java
  • SQL Server与Oracle对表添加列的不同点

      逛了博客园两年有余,不知道该发表些什么。要么觉得自己太菜,要么觉得要发的内容都可以搜索到,发表了还颇有抄袭味道。想想后都不得了之了。

      

      搞了开发快一年了,有时候零零碎碎的东西需要整理一下,梳理后才能做到游刃有余!权且当作学习笔记吧!

      

      都说客户屎尿一堆,开发时还是SQL Server,做了一半接到通知,改成Oracle了!于是乎,有些SQL语句貌似需要重新捣鼓一下!

       于是乎,对以前写的SQL进行重新整理了一下,以便能正确执行!。。。

      

      需求:向一张表中添加一列

      为了体现语句的可重复执行,那么必须先要检测当前需要插入的列是否存在,存在则提示,不存在则添加列:

      SQL Server写法:

      

      

    1 IF  EXISTS (
    2       SELECT   O.NAME AS RCMSBASEINFO,C.NAME AS EmpJobStatus
    3       FROM SYSOBJECTS O INNER JOIN SYSCOLUMNS C ON O.ID=C.ID 
    4       WHERE O.NAME= 'RCMSBASEINFO' AND C.NAME   = 'EmpJobStatus'
    5   )
    6     PRINT N'已存在' ; 
    7   ELSE 
    8     ALTER TABLE RCMSBASEINFO ADD  [EmpJobStatus] [nvarchar](40) NULL ;


      

       说明:RCMSBASEINFO  表名

          EmpJobStatus     插入的列名

      Oracle写法:

     1 declare  cnt number; 
     2 BEGIN
     3   select count(column_name) into cnt 
     4   from cols 
     5   where table_name=upper('RCMSBASEINFO') and column_name=upper('EmpJobStatus');
     6   IF cnt < 1 THEN
     7     EXECUTE IMMEDIATE 'alter table RCMSBASEINFO add EmpJobStatus NVARCHAR2(40)';
     8   ELSE
     9     dbms_output.put_line('字段已经存在不能添加'); 
    10   END IF;
    11 END;


     

       说明:RCMSBASEINFO  表名

          EmpJobStatus     插入的列名

      以前开发一直用的SQL,初次用Oracle,觉得Oracle繁琐了不少,完全没有觉得体现出Oracle的优越性!反正被搞的心烦意乱,看来都是企业与顾客之间忽悠来忽悠去的结果!

    作者:【Why Shang】
    出处:http://www.cnblogs.com/WhyShang/
    转载:欢迎转载,为了保存创作热情,转载请注明出处,谢谢!
  • 相关阅读:
    analysis of algorithms
    Measurement of Reflected Radiation
    lecture 5
    lecture 3
    字符串
    Emission of Radiation辐射发射
    Electromagnetic Radiation(EMR) 电磁辐射
    Linux FTP服务器-VSFTPD虚拟用户配置
    jenkins notes
    python nose使用记录
  • 原文地址:https://www.cnblogs.com/WhyShang/p/3597037.html
Copyright © 2011-2022 走看看