Forums Neueste Beiträge
 

Spaltentyp ändern

19/10/2007 - 01:54 von Thomas Kehl | Report spam
Hallo.

Ich muss mittels einem SQL-Statement den Typ einer Spalte von int auf float
àndern. Mit folgendem Statement sollte das ja funktionieren:

ALTER TABLE proposal_items ALTER COLUMN quantity FLOAT

nun ist das Problem aber, dass die Spalte quantity einen Default-Wert hat
und nun bekomme ich eine Fehlermeldung bei Ausführung des Statements.

Kann mir jemand einen Tipp geben, wie ich mein Problem auf SQL-Ebene lösen
kann bzw. gibt es einen Befehl um einen Default-Wert zu entfernen und wieder
hinzuzufügen? - oder gibt es eine elegantere Lösung? - Vielen Dank!

Beste Grüsse, Thomas
 

Lesen sie die antworten

#1 Peter Mauß
19/10/2007 - 08:09 | Warnen spam
On Fri, 19 Oct 2007 01:54:24 +0200, "Thomas Kehl" <t.kehl (at)
heeb.com> wrote:

DECLARE @E VARCHAR(128)
SET @E=(
SELECT
C.Name
FROM SYSOBJECTS AS T
LEFT JOIN SYSCONSTRAINTS AS SC ON T.ID=SC.ID
LEFT JOIN SYSOBJECTS AS C ON SC.ConstID=C.ID
LEFT JOIN SYSCOLUMNS AS S ON T.ID=S.ID AND SC.ColID=S.ColID
WHERE T.Name='proposal_items'
AND S.Name='quantity'
AND T.XTYPE='U'
AND C.XTYPE='D'
)
IF @E IS NOT NULL
BEGIN
EXEC ('ALTER TABLE proposal_items DROP CONSTRAINT ['+@E+']')
ALTER TABLE proposal_items ALTER COLUMN quantity FLOAT NOT NULL
DEFAULT 0
END


Hallo.

Ich muss mittels einem SQL-Statement den Typ einer Spalte von int auf float
àndern. Mit folgendem Statement sollte das ja funktionieren:

ALTER TABLE proposal_items ALTER COLUMN quantity FLOAT

nun ist das Problem aber, dass die Spalte quantity einen Default-Wert hat
und nun bekomme ich eine Fehlermeldung bei Ausführung des Statements.

Kann mir jemand einen Tipp geben, wie ich mein Problem auf SQL-Ebene lösen
kann bzw. gibt es einen Befehl um einen Default-Wert zu entfernen und wieder
hinzuzufügen? - oder gibt es eine elegantere Lösung? - Vielen Dank!

Beste Grüsse, Thomas




Peter Mauß

Ähnliche fragen