Gibt es eine Möglichkeit, die Genauigkeit einer vorhandenen Dezimalspalte in SQL Server zu ändern?
Gibt es eine Möglichkeit, die Genauigkeit einer vorhandenen Dezimalspalte in SQL Server zu ändern?
Antworten:
ALTER TABLE Testing ALTER COLUMN TestDec decimal(16,1)
Einfach ausgedrückt decimal(precision, scale)
, ersetzen Sie die Präzision und Skalierung durch Ihre gewünschten Werte.
Ich habe noch keine Tests mit Daten in der Tabelle durchgeführt, aber wenn Sie die Genauigkeit ändern, können Daten verloren gehen, wenn die neue Genauigkeit geringer ist.
Es gibt vielleicht einen besseren Weg, aber Sie können die Spalte jederzeit in eine neue Spalte kopieren, löschen und die neue Spalte wieder in den Namen der ersten Spalte umbenennen.
nämlich:
ALTER TABLE MyTable ADD NewColumnName DECIMAL(16, 2);
GO
UPDATE MyTable
SET NewColumnName = OldColumnName;
GO
ALTER TABLE CONTRACTS DROP COLUMN OldColumnName;
GO
EXEC sp_rename
@objname = 'MyTable.NewColumnName',
@newname = 'OldColumnName',
@objtype = 'COLUMN'
GO
Dies wurde unter SQL Server 2008 R2 getestet, sollte jedoch unter SQL Server 2000+ funktionieren.
Gehen Sie zu Enterprise Manager, Designtabelle und klicken Sie auf Ihr Feld.
Machen Sie eine Dezimalspalte
In den Eigenschaften unten befindet sich eine Präzisionseigenschaft