2017-01-08 25 views
0

我有一个名为temp_09.jwn的现有表。我想添加一个名为cobrand_bank_id的新列。有没有办法可以跳过下面的ALTER TABLE步骤,直接将插入语句写入语句中?插入现有表的新列

ALTER TABLE temp_09.jwn 
ADD cobrand_bank_id int; 

insert into temp_09.JWN(qqyy, cobrand_bank_id, sum) 
+6

如果不添加列,您希望如何在其中存储数据 –

+1

@ZJay您能解释为什么要跳过'alter table'步骤吗?这些语句是重复代码的一部分,因此您最终运行两次“alter table”语句。如果是这样,您可能需要 1.将'alter table'移到重复代码之外,或者 2.检查列是否存在,并且只有当列不存在时才运行alter table。请参阅[如何检查列是否存在](http://stackoverflow.com/questions/133031/how-to-check-if-a-column-exists-in-sql-server-table) – HappyTown

回答

0

不,您必须先添加列。无模式数据库(NoSQL)可以支持这一点,但RDBMS需要更改其方案。

这就好像在说:“我买了这些新鞋,我需要一个垃圾箱来存放它们,如果我把它们扔到角落里会出现一个垃圾箱?”不,你必须先拿到垃圾桶。

0

有几个选项来实现模式灵活性在(SQL-)RDBMS: 1.使用一个实体 - 属性 - 值模型 2.商店根据您的使用情况下,JSON文件 ,数据量等。 nosql db可能是更好的选择。但是有时你只需要一个或几个表就可以灵活地使用模式,而其他数据则是关系型的。

一些SQL RDBMS支持模式灵活表,例如, SAP HANA(“CREATE TABLE ... WITH SCHEMA FLEXIBILITY ...”)。