sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan finder du navnet på ikke-null-begrænsninger i SQL Server

Det kan du ikke.

Mens syntaksen accepterer et navn...

CREATE TABLE T
(
C INT CONSTRAINT NN NOT NULL
)

... og det er parset og valideret som et navn ...

CREATE TABLE T
(
C INT CONSTRAINT NN123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 NOT NULL
)
/* The identifier that starts with 'NN1234...6' is too long. Maximum length is 128. */

... dette ignoreres derefter og bliver faktisk ikke gemt nogen steder.

Ingen række tilføjes til sys.objects for disse i modsætning til andre begrænsninger. Det er bare gemt som en bit-egenskab for den tilknyttede kolonne i stedet for et begrænsningsobjekt.



  1. MariaDB sammensatte dato- og tidsenheder forklaret

  2. Oprettelse af en webapp fra bunden ved hjælp af Python Flask og MySQL:Del 3

  3. Krydstabuleringsforespørgsel med dynamiske kolonner i SQL Server 2005 op

  4. Gem store JSON-filer i Oracle DB