2017-01-08 63 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 ...」)。