2 Stimmen

wie kann ich ein Feld in meiner SQL-Datenbank von numeric(18) in varchar(10) ändern

Ich habe ein Postleitzahlenfeld in einer Datenbank, die ich gerade übernommen habe. Zuvor war es als numerisches Feld mit einer Genauigkeit von 18 eingestellt, aber ich versuche, es in varchar(10) umzuwandeln.

Ich muss diese Änderung vornehmen, weil die Linq-Felder als Dezimalwert eingehen und Probleme verursachen, und ich möchte die Linq-Felder ändern, um einfach Zeichenfolgen zu sein.

Ich habe dies im SQL Server Enterprise Manager versucht, aber ich erhalte diese Fehlermeldung:

dass die Tabelle gelöscht und neu erstellt werden muss. Sie haben entweder Änderungen an einer Tabelle vorgenommen, die nicht neu erstellt werden können, oder Sie haben die Option aktiviert, die das Speichern von Änderungen verhindert, die eine Tabellenneuerstellung erfordern

Irgendwelche Vorschläge?

2voto

Scott Ivey Punkte 39470

Um diese Option in SQL Management Studio zu aktivieren, deaktivieren Sie die folgende Option...

Extras / Optionen / Designer / Tabellen- und Datenbankdesigner / Änderungen, die eine Neuerstellung der Tabelle erfordern, nicht speichern

Sie können auch eine alter-Anweisung ausführen, um den Datentyp zu ändern (sofern alle Ihre Daten in eine varchar(10)-Spalte passen).

ALTER TABLE MyTable
    ALTER COLUMN MyZipCodeColumn VARCHAR(10)

1voto

Shane Castle Punkte 1719

Verwenden Sie MS-SQL 2008? Änderungen, bei denen die Tabelle neu erstellt werden muss, werden standardmäßig blockiert.

Klicken Sie auf Werkzeuge->Optionen und dann auf Designer. Deaktivieren Sie die Option "Speichern von Änderungen, die eine Neuerstellung der Tabelle erfordern, verhindern".

Dann können Sie Ihre Spalte mit Hilfe des Designers ändern.

Screenshots, wie man es macht:

http://pragmaticworks.com/community/blogs/brianknight/archive/2008/06/04/sql-server-2008-designer-behavior-change-saving-changes-not-permitted.aspx

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X