Определите имя столбца, который принимает только 10 цифр в SQL - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть следующий код для SQL TABLE


CREATE TABLE [dbo].[Table_1](
    [ID] [int] NULL,
    [StudentID] [nvarchar](10) NULL,
    [Name] [nvarchar](50) NULL,
    [Address] [nvarchar](500) NULL,
    [Phone] [nvarchar](10) NULL
) ON [PRIMARY]

GO

Но я могу вставить любое значение для StudentID.Я хочу вставить 10-значное число, если оно меньше / больше 10-значного, оно не должно принимать значение.Может ли кто-нибудь помочь мне с этим, так как я новичок в SQL.Спасибо

1 Ответ

4 голосов
/ 24 сентября 2019

Если вы хотите, чтобы StudentId было десятью цифрами, вы можете определить ограничение check.В SQL Server это будет выглядеть так:

alter table table_1 add constraint chk_table_1_student_id
    check (student_id like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]');

Если вам не нравится подсчет выражений в строках, вы также можете указать:

alter table table_1 add constraint chk_table_1_student_id
    check (len(student_id) = 10 and student_id not like '%[^0-9]%');

То есть он имеет длинуиз 10 и без цифр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...