SQL Server与Oracle对表添加列的不同点
逛了博客园两年有余,不知道该发表些什么。要么觉得自己太菜,要么觉得要发的内容都可以搜索到,发表了还颇有抄袭味道。想想后都不得了之了。
搞了开发快一年了,有时候零零碎碎的东西需要整理一下,梳理后才能做到游刃有余!权且当作学习笔记吧!
都说客户屎尿一堆,开发时还是SQL Server,做了一半接到通知,改成Oracle了!于是乎,有些SQL语句貌似需要重新捣鼓一下!
于是乎,对以前写的SQL进行重新整理了一下,以便能正确执行!。。。
需求:向一张表中添加一列
为了体现语句的可重复执行,那么必须先要检测当前需要插入的列是否存在,存在则提示,不存在则添加列:
SQL Server写法:
IF EXISTS (
SELECT O.NAME AS RCMSBASEINFO,C.NAME AS EmpJobStatus
FROM SYSOBJECTS O INNER JOIN SYSCOLUMNS C ON O.ID=C.ID
WHERE O.NAME= 'RCMSBASEINFO' AND C.NAME = 'EmpJobStatus'
)
PRINT N'已存在' ;
ELSE
ALTER TABLE RCMSBASEINFO ADD [EmpJobStatus] [nvarchar](40) NULL ;
说明:RCMSBASEINFO 表名
EmpJobStatus 插入的列名
Oracle写法:
declare cnt number;
BEGIN
select count(column_name) into cnt
from cols
where table_name=upper('RCMSBASEINFO') and column_name=upper('EmpJobStatus');
IF cnt < 1 THEN
EXECUTE IMMEDIATE 'alter table RCMSBASEINFO add EmpJobStatus NVARCHAR2(40)';
ELSE
dbms_output.put_line('字段已经存在不能添加');
END IF;
END;
说明:RCMSBASEINFO 表名
EmpJobStatus 插入的列名
以前开发一直用的SQL,初次用Oracle,觉得Oracle繁琐了不少,完全没有觉得体现出Oracle的优越性!反正被搞的心烦意乱,看来都是企业与顾客之间忽悠来忽悠去的结果!
SQL Server与Oracle对表添加列的不同点的更多相关文章
- 向SQL Server 现有表中添加新列并添加描述.
注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先 ...
- 使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务
使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务 作者:Nikolay Manchev 分步构建一个跨这些平台的 ...
- SQL SERVER与ORACLE的几点区别
1.数据类型不同. sql server 的数据类型 int ,smallint ,char,varchar,nchar,nvarchar,ntext,datetime,smalldatet ...
- sql server 与 oracle的区别(转)
--1.数据类型不同. --sql server 的数据类型:int ,smallint ,char,varchar,nchar,nvarchar,ntext,datetime,smalld ...
- Win7 64位下sql server链接oracle的方法
继上一次mysql同步sql server后,这一次需要将Oracle同步到sql server上来,方案相似,只是在sql server链接oracle的时候费了很多时间. 一.测试环境 本方案实现 ...
- sql server 与oracle数据互导的一种思路--sql server链接服务器
思路:通过在sql server数据库中添加链接服务器,可以远程查询oracle数据库的表环境准备,安装sql server数据库,并安装好oracle驱动,在配置好tnsname文件中配置好orac ...
- SQL Server缺省约束、列约束和表约束
SQL Server缺省约束是SQL Server数据库中的一种约束,下面就为您介绍SQL Server缺省约束.列约束和表约束的定义方法啊,供您参考. SQL Server缺省约束 SQL Serv ...
- SQL Server中Id自增列的最大Id是多少
什么是自增列 在SQL Server中可以将Id列设为自增.即无需为Id指定值,由SQL Server自动给该列赋值,每新增一列Id的值加一,初始值为1. 需要注意的是即使将原先添加的所有数据都删除, ...
- ASP.NET 连接 SQL Server 和 Oracle 教程
临近期末,有很多同学都问我怎么关于ASP.NET 连接 SQL Server 和 Oracle 的问题.由于人太多了,我也不能一一去帮忙,就写了这篇博客.希望对大家有用处. 首先,前期准备是要安装数据 ...
随机推荐
- Effective C++ Item 15 Provide access to raw resources in resource-managing classes
In last two item, I talk about resource-managing using RAII, now comes to the practical part. Often, ...
- GIS-010-ArcGIS JS 三种查询模式(转)
QueryTask.FindTask.IdentifyTask都是继承自ESRI.ArcGIS.Client.Tasks: 1.QueryTask:是一个进行空间和属性查询的功能类,它可以在某个地图服 ...
- python2.0_s12_day10_rabbitMQ使用介绍
RabbitMQ RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(M ...
- mac平台安装类似yum的工具
首先从Apple Store下载Xcode,然后安装Xcode,接着安装Homebrew包管理,类似于Ubuntu下的apt-get: 终端下输入ruby -e "$(curl -fsSL ...
- /etc/motd
/etc/motd 用于自定义欢迎界面,用法如下: [root@localhost ~]$ cat /etc/motd .=""=. / _ _ \ | d b | \ /\ / ...
- Python SQLAlchemy 模块
SQLAlchemy 简介: SQLAlchemy 是用于实现 ORM(Object Relational Mapping,对象关系映射)的一个模块,即把数据库的表结构映射到对象上在 Python 中 ...
- c++11——右值引用
1. 左值和右值 左值是表达式结束之后仍然存在的持久化对象,而右值是指表达式结束时就不再存在的临时对象. c++11中,右值分为两种类型:将亡值(xvalue, expiring value) ...
- c++ 利用new动态的定义二维数组
#include <iostream> using namespace std; int main() { , col = ; // key code: 申请空间 int **edge = ...
- MQTT-SN协议乱翻之实现要点
前言 本篇是MQTT-SN 1.2协议最后一篇翻译了,主要涉及实现要点,很简短. 需要支持QoS 值为 -1 QoS虽默认设置有0,1,2三个值,但还有一种情况其值为-1.来自客户端的PUBLISH消 ...
- 1.node.js下载
1.下载node.js http://nodejs.cn/ 2.下载git https://git-scm.com/download/win 3.安装npm npm install npm -g 使用 ...