我正在进行一项赋值,要求我添加一个约束,以确保列中的所有值都是纯数字。我从
开始ALTER TABLE table_name
ADD CONSTRAINT ck_name CHECK (col_name LIKE 'pattern');
问题在于值的长度可能不同。我一直在做大量的阅读,但我无法找出一种模式,将其限制为数字,但仍然让它的长度不同。我知道在MySQL中你可以做[0-9] *',但这并不适用于SQL Server。任何人都可以指向一个等价的方向或确认它不能发生/我接近错了吗?
编辑:我必须根据作业要求使用约束。
答案 0 :(得分:0)
ADD CONSTRAINT ck_name CHECK (TRY_PARSE(col_name AS int) IS NOT NULL);
Haven没有试过这个但可能有效吗?
答案 1 :(得分:0)
你可以做这样的事情
ALTER TABLE table_name
ADD CONSTRAINT ck_name CHECK (ISNUMERIC(col_name)<>0);
(或)类似这样的事情
ALTER TABLE table_name
ADD CONSTRAINT ck_name
CHECK (not col_name like '%[^0-9]%');