Ich habe eine SQL Server-Datenbank und habe gerade festgestellt, dass ich den Typ einer der Spalten von int
bis ändern kann bool
.
Wie kann ich das tun, ohne die Daten zu verlieren, die bereits in diese Tabelle eingegeben wurden?
sql-server
sql-server-2008
alter
Ivan Stoyanov
quelle
quelle
Antworten:
Sie können dies einfach mit dem folgenden Befehl tun. Jeder Wert von 0 wird in eine 0 umgewandelt (BIT = false), alles andere wird in 1 umgewandelt (BIT = true).
Die andere Möglichkeit besteht darin, eine neue Spalte vom Typ zu erstellen
BIT
, sie aus der alten Spalte zu füllen. Wenn Sie fertig sind, löschen Sie die alte Spalte und benennen Sie die neue in den alten Namen um. Auf diese Weise können Sie jederzeit zurückgehen, wenn während der Konvertierung etwas schief geht, da Sie noch über alle Daten verfügen.quelle
NULL
bleibtNULL
,0
wirdFalse
, werden Werte ungleich Null (1, -1, 1999, -987 ...)True
.Hinweis: Wenn es eine Spaltengröße gibt, schreiben Sie einfach auch die Größe.
quelle
Wenn es sich um eine gültige Änderung handelt.
Sie können die Eigenschaft ändern.
Jetzt können Sie den Spaltennamen einfach ändern, ohne die Tabelle neu zu erstellen oder Ihre Datensätze zu verlieren.
quelle
Warum glauben Sie, werden Sie Daten verlieren? Gehen Sie einfach in Management Studio und ändern Sie den Datentyp. Wenn der vorhandene Wert in bool (Bit) konvertiert werden kann, wird dies ausgeführt. Mit anderen Worten, wenn "1" in Ihrem ursprünglichen Feld "true" und "0" false entspricht, ist alles in Ordnung.
quelle
wenn Sie T-SQL (MSSQL) verwenden; Sie sollten dieses Skript ausprobieren:
wenn Sie MySQL verwenden; Sie sollten dieses Skript ausprobieren:
wenn Sie Oracle verwenden; Sie sollten dieses Skript ausprobieren:
quelle
Gehen Sie zu Tool-Option-Designer-Tabellen- und Datenbank-Designer und deaktivieren Sie die Option Speichern verhindern
quelle
Ändern Sie den Spaltendatentyp mit dem Prüftyp der Spalte:
quelle
Für mich in SQL Server 2016 mache ich das so
* Um Spalte Spalte1 in Spalte2 umzubenennen
* So ändern Sie den Spaltentyp von Zeichenfolge zu int :( Bitte stellen Sie sicher, dass die Daten im richtigen Format vorliegen. )
quelle
In der Compact Edition wird die Größe automatisch für den Datetime-Datentyp (dh (8)) übernommen, sodass keine Feldgröße festgelegt und kein Fehler für diesen Vorgang generiert werden muss ...
quelle
Ich kann den Datentyp des Tabellenfelds mit der folgenden Abfrage ändern: und auch in der Oracle-Datenbank:
quelle
Ersetzen Sie den Datentyp, ohne Daten zu verlieren
quelle