数据库中运用decimal类型怎么添加约束

数据库中运用decimal类型怎么添加约束,第1张

如何用sql更改表的列的数据类型和添加新列和约束

--修改插入标题

--A.添加新列

ALTER TABLE 表名 ADD 列名 VARCHAR(20)

--B.修改列名

EXEC sp_rename 'dbo.表名.列名', '新列名', 'COLUMN'

--知识点衍生

--1.删除列

ALTER TABLE 表名 DROP COLUMN column_b

--2.更改列的数据类型

ALTER TABLE 表名 ALTER COLUMN 列 DECIMAL (5, 2)

--3.添加包含约束的列(唯一约束)

ALTER TABLE 表 ADD 列 VARCHAR(20) NULL

CONSTRAINT 约束名 UNIQUE

--4.添加一个未验证的check约束

ALTER TABLE 表 WITH NOCHECK

ADD CONSTRAINT 约束名 CHECK (列 >1)

--5.在现有列中添加一个DEFAULT约束

ALTER TABLE 表

ADD CONSTRAINT 约束名

DEFAULT 50 FOR 列名

--6.删除约束

ALTER TABLE 表 DROP CONSTRAINT 约束名

--7.更改排序规则

ALTER TABLE 表

ALTER COLUMN 列 varchar(50) COLLATE Latin1_General_BIN

--8.修改表名

EXEC sp_rename 'dbo.表名', '新表名'

--9.重命名索引

EXEC sp_rename N'dbo.表名.索引名', N'新索引名', N'INDEX'

直接给个例子。decimal(5,2) 其中 5为最多可以存储的十进制位数为5位,是小数点前后的位数总和。

2表示小数点后面的位数。同理decimal(10,2)表示十进制为10为,小数点为2,例如11111111.36

,100.20是合法的值,而1234.56,总数为6位,为非法的数据值。有人说那存12345应该可以吧。事实证明是不行的。因为其精度是2,所以12345会被当做12345.00来处理,还是 非法的数据。 那么存储100.11111111111111呢?经测试,数据是可以存储的,但是会丢失精度(四舍五入),数据100.11会存储到数据库。

numeric和decimal同理。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10039121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存