Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

MSSQL 2008 Datentyp in Spalte ändern

523 views
Skip to first unread message

Peter Witt

unread,
Oct 15, 2010, 8:15:48 AM10/15/10
to
Hallo,
ich m�chte den Datentyp in 2 Spalten (S1,S2) einer Tabelle von SMALLINT auf
NVARCHAR �ndern. Der maximale Wert des Integers ist 100.
Ich habe es mit ALTER TABLE myTab ALTER COLUMN S1 nvarchar, probiert bekomme
aber einen arithmetischen �berlauffehler

Gru�
Peter

Torsten Schneider

unread,
Oct 15, 2010, 8:58:00 AM10/15/10
to
Peter Witt <eboa...@arcor.de> wrote:

>ich m?chte den Datentyp in 2 Spalten (S1,S2) einer Tabelle von SMALLINT auf
>NVARCHAR ?ndern. Der maximale Wert des Integers ist 100.


>Ich habe es mit ALTER TABLE myTab ALTER COLUMN S1 nvarchar, probiert bekomme

>aber einen arithmetischen ?berlauffehler

Wenn sowas nicht direkt gehen sollte:

1. S1 nach S1old umbenennen
2. S1 als nvarchar anlegen
3. update tabelle set S1 = cast(S1old as ...) (oder wie auch immer)
4. S1old wegwerfen


Grüße, Torsten

Wolf Wiegand

unread,
Oct 15, 2010, 2:59:10 PM10/15/10
to
Hallo,

Am 15.10.2010 14:15, schrieb Peter Witt:

> ich mᅵchte den Datentyp in 2 Spalten (S1,S2) einer Tabelle von SMALLINT auf
> NVARCHAR ᅵndern. Der maximale Wert des Integers ist 100.


> Ich habe es mit ALTER TABLE myTab ALTER COLUMN S1 nvarchar, probiert bekomme

> aber einen arithmetischen ᅵberlauffehler

Wild Guess: Hinter nvarchar fehlt die Lᅵngenangabe:


ALTER TABLE table_1 ALTER COLUMN Wert nvarchar

Meldung 8115, Ebene 16, Status 2, Zeile 1
Arithmetischer ᅵberlauffehler beim Konvertieren von expression in den
nvarchar-Datentyp.
Die Anweisung wurde beendet.


ALTER TABLE table_1 ALTER COLUMN Wert nvarchar(2)

Befehl(e) wurde(n) erfolgreich abgeschlossen.


Falls Du Zugriff auf das SQL Server Management Studio hast: Ich finde
bei solchen Sachen folgendes immer ganz erhellend:

- Rechtsklick im Objekt-Exporer auf Tabellennamen und 'Entwerfen' auswᅵhlen
- Gewᅵnschte ᅵnderung vornehmen, aber nicht(!) speichern
- Rechtsklick auf den freien Bereich und 'ᅵnderungsskript generieren...'
auswᅵhlen

Da sieht man dann, wie das Management Studio so etwas umsetzen wᅵrde
(neue Tabelle mit korrektem Datentyp generieren, Daten rᅵberkopieren und
die Spalte dabei umwandeln, alte Tabelle lᅵschen, neue Tabelle umbenennen).


hth,

Wolf

Peter Witt

unread,
Oct 16, 2010, 12:30:14 PM10/16/10
to
Dankesch�n f�r die Antworten, an die L�nge hatte ich schon gedacht aber ich
hatte die Syntax nicht richtig.
Der Tipp mit dem �nderungsskript ist super.
Danke
Peter Witt


0 new messages