Làm cách nào để thay đổi độ chính xác của cột thập phân trong Máy chủ Sql?


85

Có cách nào để thay đổi độ chính xác của cột thập phân hiện có trong Sql Server không?

Câu trả lời:


157
ALTER TABLE Testing ALTER COLUMN TestDec decimal(16,1)

Chỉ cần đặt decimal(precision, scale), thay thế độ chính xác và tỷ lệ bằng các giá trị mong muốn của bạn.

Tôi chưa thực hiện bất kỳ thử nghiệm nào với điều này với dữ liệu trong bảng, nhưng nếu bạn thay đổi độ chính xác, bạn sẽ có thể bị mất dữ liệu nếu độ chính xác mới thấp hơn.


2
Điều này đã hiệu quả với tôi khi tăng độ chính xác cho số thập phân (18,2) thành số thập phân (18,3).
Rebecca

Cảm ơn bạn, rất đơn giản, vẫn khó tìm.
Philippe Lavoie,

Nếu bạn có 16 (tổng) chữ số và bạn tăng tỷ lệ, liệu các chữ số có bậc cao hơn có bị xáo trộn để nhường chỗ cho 2 chữ số thập phân mới không? Rất tiếc, tôi không thể kiểm tra điều này vào lúc này.
user420667

12
Để trả lời câu hỏi của riêng tôi, tôi đã tạo sqlfiddle: sqlfiddle.com/#!3/4b8cb/1/0 . Câu trả lời là thay đổi thập phân (18,2) thành thập phân (18,3) sẽ dẫn đến lỗi khi thay đổi bảng. thập phân (18,2) đến thập phân (19,3) mặc dù phải hoạt động.
user420667

12

Có thể có một cách tốt hơn, nhưng bạn luôn có thể sao chép cột đó vào một cột mới, thả nó và đổi tên cột mới thành tên của cột đầu tiên.

hóm hỉnh:

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

Điều này đã được thử nghiệm trên SQL Server 2008 R2, nhưng sẽ hoạt động trên SQL Server 2000+.


0
ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DATA_TYPE();

Đối với bạn vấn đề:

ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DECIMAL(Precision, Scale); 

-2
ALTER TABLE `tableName` CHANGE  `columnName` DECIMAL(16,1) NOT NULL;

Tôi sử dụng Điều này cho sự thay đổi


-3

Vào quản lý xí nghiệp, bảng thiết kế, bấm vào lĩnh vực của bạn.

Tạo cột thập phân

Trong các thuộc tính ở dưới cùng có một thuộc tính chính xác


4
Thao tác này sẽ tạo lại bảng.
Alexander Kojevnikov 23/09/08

1
Trong trường hợp đó, đừng làm điều đó sau đó: p
qui.

Tôi chưa bao giờ hiểu trang bảng thiết kế đó. Bạn không thể thực hiện bất kỳ hình thức chỉnh sửa nào trong đó liên quan đến kiểu dữ liệu, mặc dù không có vấn đề gì khi thực hiện điều này trong một truy vấn. Có lẽ, trang thiết kế sử dụng các truy vấn trong nền, tôi không hiểu tại sao hạn chế này lại được thực hiện.
Flater

3
Bạn có thể tắt tính năng này thông qua: Tools> Options> Designers - "Ngăn lưu các thay đổi yêu cầu tạo lại bảng".
Chris Missal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.