Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So finden Sie den Namen von Nicht-Null-Einschränkungen in SQL Server

Das kannst du nicht.

Während die Syntax einen Namen akzeptiert...

CREATE TABLE T
(
C INT CONSTRAINT NN NOT NULL
)

... und wird als Name geparst und validiert ...

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

... dies wird dann ignoriert und nirgendwo gespeichert.

sys.objects wird keine Zeile hinzugefügt für diese im Gegensatz zu anderen Einschränkungen. Es wird nur als Bit-Eigenschaft der zugeordneten Spalte und nicht als Einschränkungsobjekt gespeichert.