Muszę zmienić typ danych w tabeli SQL Server 2008 z varchar (max) na nvarchar (max). Ta tabela zawiera dane. Czy istnieje sposób na zmianę typu danych bez utraty danych?Zmiana kolumny danych z varchar (max) na nvarchar (max) w SQL Server 2008
Odpowiedz
można po prostu użyć standardowej składni aby zmienić tabelę:
ALTER TABLE some_table ALTER COLUMN some_column nvarchar(max)
Prawdopodobnie chcą odbudować żadnych indeksów jednak, aby upewnić się, że działa zgodnie z oczekiwaniami.
Zawsze wykonuj kopię zapasową, więc niezależnie od tego, co się stanie, możesz wrócić do stanu rzeczy.
Po tej zmianie zmiana z varchar(max)
na nvarchar(max)
nie powinna powodować utraty danych.
marginesie: może masz obawy jeśli zmieniały się w innym kierunku nvarchar(max)
do varchar(max)
jako proces musiałby konwersji znaków rozszerzonych jeśli były obecne.
Innym rozwiązaniem, aby zminimalizować zakłócenia (ponieważ nie wierzę w ALTER COLUMN
nastąpi online), jest:
ALTER TABLE dbo.table ADD new_column NVARCHAR(MAX); -- metadata operation
Teraz możesz zaktualizować dane w fale/partii/transakcji zamiast stosowania zmian cała tabela w jednej długiej transakcji. Gdy masz pewność, że dane są kopiowane, możesz usunąć starą kolumnę, zmienić nazwę nowego i ponownie utworzyć indeksy, których dotyczy ta zmiana (Twoja kolumna MAX nie może znajdować się w kluczu żadnego indeksu, ale możesz mieć niechcący umieścił go w definicji INCLUDE - jeśli tak jest, powinieneś to zakwestionować).
Nadal będziesz chciał odbudować wszystkie indeksy, aby odzyskać teraz niewykorzystane miejsce (które możesz zrobić online, jeśli używasz wersji Enterprise Edition).
- 1. Varchar (255) do Varchar (MAX)
- 2. Ile znaków w varchar (max)
- 3. SQL Server 2008 Reporting: Suma Max grupy
- 4. Jak wyświetlić pełną zawartość kolumny tekstowej lub varchar (MAX) w programie SQL Server 2008 Management Studio?
- 5. Jak utworzyć indeks na nvarchar (max) typ danych w sql?
- 6. Długość varbinary (max) filestream na SQL Server 2008
- 7. SQL Server 2008 R2 Varbinary Max Size
- 8. T-SQL VARCHAR (MAX) okrojone
- 9. SQL Server Management Studio wyświetla pełną zawartość pola varchar (max)
- 10. SqlServer i nvarchar (max)
- 11. Konwersja między tekstem a varcharem (MAX) w SQL Server
- 12. Maksymalny rozmiar zmiennej varchar (max)
- 13. Zmień typ kolumny z ntext na varbinary (max)
- 14. SQL max wiersza tabeli
- 15. SQL Server Varbinary (max): wybierz podzbiór bajtów z pola varbinary
- 16. Procedura przechowywana na serwerze sql Użyj varchar max jako parametru
- 17. Fluent NHibernate automapping jako nvarchar (max)
- 18. Tworzenie kolumny obliczeniowej w SQL Server 2008
- 19. trzy kolumny - dostać MAX z SQL
- 20. W jaki sposób hibernować można mapować nvarchar (max) typu danych SQL?
- 21. Czy varchar (MAX) jest zawsze lepszy?
- 22. Czy są jakieś wady używania VARCHAR (MAX) w tabeli?
- 23. XML z kolumny SQL: Nie można wywoływać metod na nvarchar (max)
- 24. VARCHAR (MAX) dziwnie, gdy łącząc ciąg
- 25. Przeczytaj VARBINARY (MAX) z SQL Server do C#
- 26. Utwórz kolumnę z varchar (max) zamiast varchar (8000)
- 27. SQL Server 2008 limit na oświadczeniu exec
- 28. wybierz nazwę kolumny z max zapytania
- 29. Zmień typ danych varchar na nvarchar w istniejącej bazie danych SQL Server 2005. Jakieś problemy?
- 30. Co SqlDbType jest mapowane na varChar (max)?
bardzo dobry punkt +1 – RThomas