Frage

Ich bin mit SQL Server 2008 R2.

Ich habe eine Tabelle, die mehrere Felder mit einem nvarchar (max) Feld hat.

Wenn ich versuche, und ein neues Feld vom Typ varbinary (max) hinzufügen Ich erhalte eine Fehlermeldung: „Speichern von Änderungen ist nicht zulässig Die Änderung, dass Sie die folgenden Tabellen vorgenommen haben erfordert droped und neu erstellt werden“.

Ist es möglich, eine nvarchar zu haben (max) und ein varbinar (max) Felder in derselben Tabelle?

ist der einzige Weg, dies zu beheben, um eine neue Tabelle mit der neuen Struktur zu schaffen und die Daten übertragen?

War es hilfreich?

Lösung

Ja, es ist möglich.

Wenn Sie diese Meldung sehen, müssen Sie die neue Spalte in der Mitte der bestehenden in der SSMS Tabelle Designer einzufügen versucht haben. Fügen Sie es auf das Ende der bestehenden Spalten dann wird die Tabelle muss nicht komplett neu aufgebaut werden.

oder einfach nur ausführen

alter table YourTable add newcol varbinary(max) null

Andere Tipps

Ja natürlich - Sie wahrscheinlich nur haben diese neue „Sicherheit“ Option in SSMS noch aktiviert ist (es ist standardmäßig aktiviert):

alt text

Das ist, unter Tools > Options ....

Zum Tools | Options > Designers und deaktivieren Sie die Option ‚Änderungen Prevent speichern, die Tabelle Neuschöpfung erfordern‘

SQL Server ist nicht so dass Sie die Tabelle auf diese Weise zu entwickeln, weil es nicht den Speicher für die vorhandene Tabelle dynamisch ändern kann. Wenn Sie dies tun wollen, müssen Sie mit dem neuen Schema eine neue Tabelle erstellen und mit den Daten aus der ursprünglichen Tabelle füllen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top