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

Odpowiedz Nowy wątek
2018-12-09 15:11
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?

edytowany 2x, ostatnio: Patryk27, 2018-12-09 15:12
Nie wrzucaj takich tagów jak pomoc - są zbyt generyczne i raczej 95% tematów na forum miałoby to oznaczenie, ergo: nie byłoby ono przydatne ;-) - Patryk27 2018-12-09 15:12
A typ CHAR(12) nie ma czasem zawsze dlugości 12? W odróżnieniu od VARCHAR(12)... - Marcin.Miga 2018-12-09 18:02
ma - jest uzupełniany spacjami - abrakadaber 2018-12-09 21:06

Pozostało 580 znaków

2018-12-09 15:26
0

https://docs.microsoft.com/en[...]straints?view=sql-server-2017 + https://docs.microsoft.com/en[...]sact-sql?view=sql-server-2017


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

2018-12-09 19:22
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.

Pozostało 580 znaków

2018-12-09 19:29
0

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

edytowany 1x, ostatnio: Panczo, 2018-12-09 19:30

Pozostało 580 znaków

2018-12-09 19:34
0

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

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

edytowany 1x, ostatnio: Michał Bieniek, 2018-12-09 19:35

Pozostało 580 znaków

2018-12-09 19:46
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
edytowany 2x, ostatnio: Panczo, 2018-12-09 19:48

Pozostało 580 znaków

2018-12-09 20:00
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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