sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo encontrar el nombre de restricciones no nulas en SQL Server

No puedes.

Si bien la sintaxis acepta un nombre...

CREATE TABLE T
(
C INT CONSTRAINT NN NOT NULL
)

... y se analiza y valida como un nombre ...

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

... luego se ignora y no se almacena en ningún lugar.

No se agrega ninguna fila a sys.objects para estos a diferencia de otras limitaciones. Simplemente se almacena como una propiedad de bit de la columna asociada en lugar de un objeto de restricción.