sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man hittar namnet på icke-null-begränsningar i SQL Server

Du kan inte.

Medan syntaxen accepterar ett namn...

CREATE TABLE T
(
C INT CONSTRAINT NN NOT NULL
)

... och det tolkas och valideras som ett namn ...

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

... detta ignoreras sedan och lagras faktiskt inte någonstans.

Ingen rad läggs till i sys.objects för dessa till skillnad från andra begränsningar. Det lagras bara som en bitegenskap för den associerade kolumnen snarare än ett begränsningsobjekt.



  1. 3 sätt att få en lista över databaser i SQL Server (T-SQL)

  2. problem med mysqli prepare

  3. @@DATEFIRST – Få veckans första dag i SQL Server

  4. Laravel Homestead SQLSTATE[HY000] [2002] Anslutning nekades efter serverflyttning