Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como encontrar o nome de restrições não nulas no SQL Server


Você não pode.

Embora a sintaxe aceite um nome...
CREATE TABLE T
(
C INT CONSTRAINT NN NOT NULL
)

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

... isso é ignorado e não é armazenado em nenhum lugar.

Nenhuma linha é adicionada a sys.objects para estes ao contrário de outras restrições. Ele é armazenado apenas como uma propriedade de bit da coluna associada em vez de um objeto de restrição.