Ich habe eine vorhandene Tabelle in SQL SERVER 2008 mit einer ihrer Spalte als NVARCHAR (MAX) und es hat nur Werte von weniger als 10 Zeichen. Diese Tabelle ist in Produktion und enthält Daten.So ändern Sie die Spalte von nvarchar (max) zu nvarchar (50)
Ich habe eine Anforderung, wobei ich diese Spalte von NVARCHAR (MAX) zu NVARCHAR (50) ändern muss. T Der SQL Server gibt während der Operation einen Trunkierungsfehler, obwohl die Daten in dieser Spalte weniger als 10 Zeichen enthalten.
Das ist mein Skript:
ALTER TABLE [dbo].[Table] ALTER COLUMN [Column1] NVARCHAR (50) NOT NULL
Was ist der * genaue * Fehler? Sind Sie sicher, dass die Daten wirklich weniger als 10 Zeichen sind? Versuchen Sie, nach Zeilen 'WHERE LEN (Column1)> 50' zu suchen. Beachten Sie auch, dass 'NVARCHAR (MAX)' der Typ ist, der zum Speichern von * Blobs * verwendet wird, und SQL Server lässt die Typänderung möglicherweise nicht zu. Deshalb sollten Sie die vollständige Fehlermeldung –
"die Daten in dieser Spalte sind weniger als 10 Zeichen" - sind Sie sicher? Es ist einfach, nachgestellte Leerzeichen zu haben. Bitte führen Sie SELECT * FROM dbo.TABLE WO LEN (Column1)> 50. – DaveBoltman
Ist es wirklich ein Fehler, oder ist es eine Warnung? – HoneyBadger