2017-01-08 5 views
0

Ich habe eine vorhandene Tabelle temp_09.jwn genannt. Ich möchte eine neue Spalte namens cobrand_bank_id hinzufügen. Gibt es eine Möglichkeit, wo ich die ALTER TABLE Schritt überspringen unten und schreiben Sie einfach direkt den Einsatz in Aussage?Legen Sie in eine neue Spalte einer vorhandenen Tabelle

ALTER TABLE temp_09.jwn 
ADD cobrand_bank_id int; 

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

Ohne eine Spalte hinzufügen, wie würden Sie erwarten, Daten darin zu speichern –

+1

@ZJay können Sie erklären, warum Sie den Schritt "alter table" überspringen möchten? Sind diese Anweisungen Teil eines sich wiederholenden Codes, so wird die 'alter table' Anweisung zweimal ausgeführt. Wenn ja, könnten Sie 1. Zug 'ändern table' außerhalb des sich wiederholenden Code oder 2. Überprüfen Sie, ob die Spalte vorhanden ist, und führen Sie' ändern table' nur, wenn die Spalte nicht existiert. Siehe [Überprüfen, ob die Spalte existiert] (http://stackoverflow.com/questions/133031/how-to-check-if-a-column-exists-in-sql-server-table) – HappyTown

Antwort

0

Nein, Sie müssen die Spalte zuerst hinzufügen. Schema-weniger-Datenbanken (NoSQL) kann dies unterstützen, aber ein RDBMS muss sein System geändert haben.

Es ist wie eine Art zu sagen, „ich diese neuen Schuhe gekauft und ich brauche eine ist, sie zu speichern, wenn ich werfe sie nur in der Ecke wird ein Behälter erscheinen?“ Nein, du musst zuerst den Mülleimer holen.

0

Es gibt mehrere Optionen Schema Flexibilität in einem (SQL-) RDBMS zu erreichen: 1. Verwenden Sie ein Entity-Attribut-Wert-Modell 2. Laden ein JSON-Dokument Je nach Anwendungsfall, Datenvolumen usw. ein nosql db könnte die bessere Wahl sein. Aber manchmal brauchen Sie nur eine oder wenige Tabellen, um schemaflexibel zu sein, und Ihre anderen Daten sind relational.

Einige SQL-RDBMS Unterstützung Schema flexible Tabellen, zum Beispiel SAP HANA ("TABELLE ERSTELLEN ... MIT SCHEMA FLEXIBILITÄT ...").

Verwandte Themen