sql-server - 如何在一个 SQL 语句(如 Oracle 创建替换)中创建/更改表、存储过程、视图等
问题描述
我想使用一个语句来创建和更改两者。
如果对象不存在,我使用CREATE TABLE
,如果对象确实存在,我使用ALTER TABLE
. 如何针对数据库对象(存储过程、视图、表、模式、自定义类型等)执行此操作
喜欢桌子
修改
创建表 MyTable *****
更改表 MyTable *****
以上是两个不同的语句,如果 MyTable Exists CREATE 引发错误,如果不存在 ALTER 引发错误类似,所以我试图通过“oracle create replace”之类的语句解决此错误,并且 oracle 不给出错误和自我创建/替换。
是否有任何 sql 命令语法?
解决方案
你能像这样试试吗?
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
推荐阅读
- https - 如何将我的 Google 域与我的 Google Cloud DNS 关联?
- unit-testing - AutoMapper 的 AssertConfigurationIsValid 和 EF 导航属性
- python - 如何在熊猫中使用就地保存修改?
- firebase - React Native Firebase Android 总是崩溃 0.61
- c - 如何在 C 中同时接受整数和字符串?
- c# - 无法分配给从 VBA 消耗的 C# 类中的 Hashtable 项
- excel - Excel:定义一个 VBA 函数来缩短 PERCENTRANK
- java - java.lang.IllegalStateException:指定的孩子已经有一个父母。您必须先在孩子的父母上调用 removeView()
- ios - 当用户填写一些文本字段时如何更新 UILabel 的文本
- javascript - 如何在点击时传输输入值