博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server与Oracle对表添加列的不同点
阅读量:5079 次
发布时间:2019-06-12

本文共 1227 字,大约阅读时间需要 4 分钟。

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

  

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

  

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

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

  

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

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

  SQL Server写法:

  

  

1 IF  EXISTS (2       SELECT   O.NAME AS RCMSBASEINFO,C.NAME AS EmpJobStatus3       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的优越性!反正被搞的心烦意乱,看来都是企业与顾客之间忽悠来忽悠去的结果!

 

转载于:https://www.cnblogs.com/WhyShang/p/3597037.html

你可能感兴趣的文章
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>
IOS-图片操作集合
查看>>
模板统计LA 4670 Dominating Patterns
查看>>
团队项目开发客户端——登录子系统的设计
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>
session如何保存在专门的StateServer服务器中
查看>>
react展示数据
查看>>
测试计划
查看>>
选择器
查看>>
Mysql与Oracle 的对比
查看>>