轉至:
1.sqlserver資料庫
在sqlserver中,建立表之前判斷表是否存在,如果存在則刪除已有表
----sql-server
if exists (select 1
from sysobjects
where id = object_id('emp')
and type = 'u')
drop table s_evaluate
go--create table: emp
create table emp(
id numeric identity, -- 評估id
conclusion text null --結論
constraint pk_s_emp primary key nonclustered(id)
)go
2.oracle 資料庫
--判斷表是否存在,如果存在則刪除
declare
num number;
begin
select count(1) into num from all_tables where table_name = 'emp' and owner='scott';
if num=1 then
execute immediate 'drop table emp';
end if;
end;
/ --建立表
create table emp
(empno number(4) not null,
ename varchar2(10),
job varchar2(9),
mgr number(4),
hiredate date,
sal number(7, 2),
comm number(7, 2),
deptno number(2));
3.db2
現在使用db2,網上找了很久也沒個好方法,基本上用簡單的sql語句來實現是不大可能的,能找到的方法都是自己寫儲存過程實現
刪除表的如下:
create procedure existstest(in tablename varchar(50),out ireturn int)
language sql
p1: begin
declare stmt varchar(200);
if exists (select * from sysibm.systables where tid <> 0 and name = tablename ) then
set stmt ='drop table '|| tablename;
prepare s1 from stmt;
execute s1;
set ireturn =0;
else
set ireturn =-1;
end if;
end p1@
sysibm.tables的表裡面的資訊比syscat.tables的少,或者說ibm認為你想知道的資訊在sysibm.tables裡面已經都可以知道了,這個應該是給使用者使用的。syscat.tables應該是給系統使用的。gmx平坦軟體園
Oracle刪除表前判斷表名是否存在若存在則刪除
在oracle中若刪除乙個不存在mrzlypj的表,如 drop table notexisttable 則會提示 ora 00942 表或檢視不存在,若使用程式執行該語句則會報異常,這就需要我們再刪除表前判斷該錶是否存在,若存在則刪除.下面是不使用儲存過程實現刪除表的sql 複製 如下 decla...
判斷臨時表是否存在
if object id tempdb.t is not null drop table t if objectproperty object id tempdb.t istable 1 print authors is a table else if objectproperty object i...
sqlserver判斷表是否存在
1 判斷資料表是否存在 方法一 use yourdb goif object id n tablename n u is not null print 存在 else print 不存在 例如 use fireweb goif object id n temp tbl n u is not null...