我想使用一个语句来创建和更改两者。
如果对象不存在,则使用CREATE TABLE
;如果对象确实存在,则使用ALTER TABLE
。如何在数据库对象(存储过程,视图,表,模式,自定义类型等)为条件的情况下执行此操作
喜欢桌子
已修改
创建表MyTable *****
ALTER TABLE MyTable *****
以上是两个不同的语句,如果MyTable Exists存在,则CREATE引发错误,如果不存在,则引发ALTER引发错误,因此我试图通过“ oracle create replace”这样的语句来解决此错误,并且oracle不给出错误和自我创建/替换。
是否有任何sql命令语法?
答案 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