建立表之前判斷表是否存在,如果存在則刪除已有表

2022-09-19 18:00:15 字數 1746 閱讀 1381

轉至:

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...