Ich muss den Datentyp in einer SQL Server 2008-Tabelle von Varchar (Max) zu Nvarchar (Max) ändern. Diese Tabelle enthält Daten. Gibt es eine Möglichkeit, den Datentyp zu ändern, ohne die Daten zu verlieren?Ändern einer Datenspalte von Varchar (Max) zu Nvarchar (Max) in SQL Server 2008
Antwort
Sie können nur Standard-Syntax verwenden, um die Tabelle zu ändern:
ALTER TABLE some_table ALTER COLUMN some_column nvarchar(max)
Sie wollen wahrscheinlich jedoch alle Indizes neu zu erstellen, um sicherzustellen, dass sie wie erwartet funktionieren.
Nehmen Sie immer ein Backup, also egal was passiert, Sie können zurückgehen, wie es war.
Mit besagtem Wechsel von varchar(max)
zu nvarchar(max)
sollten keine Daten verlieren.
Randbemerkung: Sie könnten Probleme haben, wenn Sie nvarchar(max)
zu varchar(max)
in der anderen Richtung ändert wurden, da der Prozess erweiterte Zeichen konvertieren würde, wenn überhaupt vorhanden sind.
Eine weitere Option Störung zu minimieren (da ich die ALTER COLUMN
nicht glauben, dass Online auftreten), ist:
ALTER TABLE dbo.table ADD new_column NVARCHAR(MAX); -- metadata operation
Jetzt können Sie die Daten in Wellen/Chargen/Transaktionen aktualisieren, statt die Änderung des Auftragens die ganze Tabelle in einer langen Transaktion. Wenn Sie sicher sind, dass die Daten kopiert wurden, können Sie die alte Spalte löschen, die neue umbenennen und alle betroffenen Indizes neu erstellen (Ihre MAX-Spalte kann nicht im Schlüssel eines Indexes enthalten sein, aber Sie haben möglicherweise versehentlich in eine INCLUDE-Definition einfügen - wenn das der Fall ist, sollten Sie das trotzdem hinterfragen.
Sie möchten immer noch alle Indizes neu erstellen, um den jetzt nicht verwendeten Speicherplatz zurück zu gewinnen (was Sie online tun können, wenn Sie Enterprise Edition verwenden).
- 1. Varchar (255) zu Varchar (MAX)
- 2. varchar (max) MS SQL Server 2000, Probleme?
- 3. Unterschied zwischen varchar (500) vs varchar (max) in SQL-Server
- 4. SQL Server, konvertieren von NTEXT in NVARCHAR (MAX)
- 5. SQL Server 2008 - nicht immer Max Erste
- 6. Konvertieren von Text in varchar (MAX)
- 7. ändern Datentyp VARCHAR Varbinary (max) in SQL Server
- 8. Implikationen von nvarchar (50) vs nvarchar (max)
- 9. Verwenden von VARCHAR (MAX) mit Zeichenfolgenverkettung in SQL Server 2005
- 10. So ändern Sie die Spalte von nvarchar (max) zu nvarchar (50)
- 11. SQL Server, Nvarchar (MAX) oder Ntext, Bild oder Varbinary?
- 12. SQL Server varchar (MAX) -Datentyp in Delphi mit RemObjects
- 13. FreeTDS MSSQL nvarchar (max) Ausgabe
- 14. Länge von varbinary (max) Filestream auf SQL Server 2008
- 15. Verwenden von VARCHAR (MAX) vs TEXT auf SQL Server
- 16. Anzahl der Zeichen in varchar (max)
- 17. SQL Server Maximale Zeilengröße Vs Varchar (Max) Größe
- 18. sql Server gespeicherte Prozedur verwenden varchar max als Parameter
- 19. sql Server Datenfelder nvchar (x) oder nvarchar (max)
- 20. Max (Date) funktioniert nicht für varchar in SQL Server
- 21. Varchar (max) zeigt als Text in SQL Server Management Studio
- 22. Varchar (max) -Spalte darf kein Primärschlüssel in SQL Server sein
- 23. OLEDB, ODBC, Ntext und Nvarchar (max)
- 24. Max. Poolgröße der Verbindung in SQL Server 2008
- 25. SQL Server - Skript um Datenbankspalten von varchar auf nvarchar zu aktualisieren, wenn nicht schon nvarchar
- 26. SQL max Zeile einer Tabelle
- 27. Wie erstellt NVarchar (max) Sqlparameter in C#?
- 28. NVarchar (MAX) für kurze Strings
- 29. Wie verwende ich Varchar (max) Ausgabe von einer SQL Server 2008 gespeicherten Prozedur in einer alten ASP/VBScript App?
- 30. SQL Server: Rückkehr der max einer Gruppe
sehr guter Punkt +1 – RThomas