มีวิธีเปลี่ยนแปลงความแม่นยำของคอลัมน์ทศนิยมที่มีอยู่ใน Sql Server หรือไม่?
มีวิธีเปลี่ยนแปลงความแม่นยำของคอลัมน์ทศนิยมที่มีอยู่ใน Sql Server หรือไม่?
คำตอบ:
ALTER TABLE Testing ALTER COLUMN TestDec decimal(16,1)
เพียงแค่ใส่decimal(precision, scale)แทนที่ความแม่นยำและมาตราส่วนด้วยค่าที่คุณต้องการ
ฉันยังไม่ได้ทำการทดสอบกับข้อมูลในตาราง แต่ถ้าคุณปรับเปลี่ยนความแม่นยำคุณอาจสูญเสียข้อมูลหากความแม่นยำใหม่ต่ำลง
อาจมีวิธีที่ดีกว่านี้ แต่คุณสามารถคัดลอกคอลัมน์ลงในคอลัมน์ใหม่วางและเปลี่ยนชื่อคอลัมน์ใหม่กลับเป็นชื่อของคอลัมน์แรกได้
เพื่อปัญญา:
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
สิ่งนี้ได้รับการทดสอบบน SQL Server 2008 R2 แต่ควรทำงานบน SQL Server 2000+
ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DATA_TYPE();
สำหรับคุณปัญหา:
ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DECIMAL(Precision, Scale);
ALTER TABLE `tableName` CHANGE `columnName` DECIMAL(16,1) NOT NULL;
ฉันใช้สิ่งนี้สำหรับการเปลี่ยนแปลง
ไปที่ผู้จัดการองค์กรตารางออกแบบคลิกที่ฟิลด์ของคุณ
สร้างคอลัมน์ทศนิยม
ในคุณสมบัติที่ด้านล่างมีคุณสมบัติความแม่นยำ