Czy istnieje sposób na zmianę precyzji istniejącej kolumny dziesiętnej w Sql Server?
Czy istnieje sposób na zmianę precyzji istniejącej kolumny dziesiętnej w Sql Server?
Odpowiedzi:
ALTER TABLE Testing ALTER COLUMN TestDec decimal(16,1)
Po prostu umieść decimal(precision, scale)
, zastępując precyzję i skalę żądanymi wartościami.
Nie przeprowadziłem żadnych testów z danymi w tabeli, ale jeśli zmienisz dokładność, stracisz dane, jeśli nowa precyzja będzie niższa.
Może być lepszy sposób, ale zawsze możesz skopiować kolumnę do nowej kolumny, upuścić ją i zmienić nazwę nowej kolumny z powrotem na nazwę pierwszej kolumny.
do dowodu:
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
Zostało to przetestowane na SQL Server 2008 R2, ale powinno działać na SQL Server 2000+.
Przejdź do menedżera przedsiębiorstwa, tabeli projektowej, kliknij swoje pole.
Utwórz kolumnę dziesiętną
We właściwościach na dole znajduje się właściwość precyzyjna