如何在一条SQL语句(例如Oracle)中创建/更改表,存储过程,视图等

时间:2019-03-04 04:20:42

标签: sql-server

我想使用一个语句来创建和更改两者。

如果对象不存在,则使用CREATE TABLE;如果对象确实存在,则使用ALTER TABLE。如何在数据库对象(存储过程,视图,表,模式,自定义类型等)为条件的情况下执行此操作

喜欢桌子

已修改

创建表MyTable *****

ALTER TABLE MyTable *****

以上是两个不同的语句,如果MyTable Exists存在,则CREATE引发错误,如果不存在,则引发ALTER引发错误,因此我试图通过“ oracle create replace”这样的语句来解决此错误,并且oracle不给出错误和自我创建/替换。

是否有任何sql命令语法?

1 个答案:

答案 0 :(得分:2)

你能这样尝试吗 对于桌子

IF  EXISTS (SELECT 1
               FROM   INFORMATION_SCHEMA.COLUMNS
               WHERE  TABLE_NAME = 'Table_name'  
                      AND TABLE_SCHEMA='DBO')
  BEGIN

     create table SYNTAX

ALTER TABLE SYNTAX
  END
GO

用于列检查

IF  EXISTS (SELECT 1
               FROM   INFORMATION_SCHEMA.COLUMNS
               WHERE  TABLE_NAME = 'Table_name'
                      AND COLUMN_NAME = 'Column_name'
                      AND TABLE_SCHEMA='DBO')
  BEGIN

      ALTER TABLE Table_name
        ALTER COLUMN Column_name DATATYPE
  END
GO