sql >> Databáze >  >> RDS >> Sqlserver

Jak najít název omezení, která nejsou null v SQL Server

Nemůžete.

Zatímco syntaxe přijímá jméno...

CREATE TABLE T
(
C INT CONSTRAINT NN NOT NULL
)

... a je analyzován a ověřen jako název ...

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

... to je pak ignorováno a ve skutečnosti se nikde neukládá.

Do sys.objects není přidán žádný řádek pro tato na rozdíl od jiných omezení. Je uložen pouze jako bitová vlastnost přidruženého sloupce, nikoli jako objekt omezení.



  1. .Net - Vytváření sady záznamů na vyžádání namísto stahování všeho do paměti najednou

  2. Co je špatného na tomto připojovacím řetězci mysql?

  3. VYBERTE jeden sloupec, pokud je druhý prázdný

  4. MySQL 5.7 RAND() a IF() bez LIMIT vede k neočekávaným výsledkům