Ograniczanie długości wprowadzanego ciągu znaków

0

Witam,

Mam pytanie co do komendy dot. długości znaków w SSMS.

Telefon CHAR(12) NOT NULL

Może ktoś pomóc jak napisać właściwy CHECK LENGHT, by nr telefonu mógł mieć maks. 12 znaków?

0

Próbuję z tym

Telefon VARCHAR(12) CHECK(LENGTH(Telefon)<=12) NOT NULL,   

I otrzymuję

Msg 195, Level 15, State 10, Line 31
'length' is not a recognized built-in function name.
0

Bo w mssql jest LEN skoro pole char/varchar ma długość 12 to nigdy jej nie przekroczy, co Ty chcesz sprawdzać?

0

Interesuję mnie ogólnie ta składnia, nie konkretny przykład ;)

Po zmienieniu LENGTH na LEN pojawia się ten sam błąd...

0

ok,


CREATE TABLE dbo.Table_1
    (
    telefon varchar(12) NOT NULL
    )
GO
ALTER TABLE dbo.Table_1 ADD CONSTRAINT
    CK_Table_1 CHECK (LEN(telefon)<=12)
GO

Tu jednak jak dodasz wartosc o 13 znakach to constraint nie zadziała, bo dostaniesz komunikat o tym, że string jest za długi

Można też tak:

CREATE TABLE dbo.Table_1
    (
    telefon VARCHAR(12) NOT NULL CHECK (LEN(telefon)<=5)
    )
GO
0

Dziękuję za odp, wszystko już działa ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0