首页 > 解决方案 > 如何在一个 SQL 语句(如 Oracle 创建替换)中创建/更改表、存储过程、视图等

问题描述

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

如果对象不存在,我使用CREATE TABLE,如果对象确实存在,我使用ALTER TABLE. 如何针对数据库对象(存储过程、视图、表、模式、自定义类型等)执行此操作

喜欢桌子

修改

创建表 MyTable *****

更改表 MyTable *****

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

是否有任何 sql 命令语法?

标签: sql-server

解决方案


你能像这样试试吗?

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

推荐阅读