Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да намерите името на ненулевите ограничения в SQL Server

Не можеш.

Въпреки че синтаксисът приема име...

CREATE TABLE T
(
C INT CONSTRAINT NN NOT NULL
)

... и се анализира и валидира като име ...

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

... след това това се игнорира и всъщност не се съхранява никъде.

Не се добавя ред към sys.objects за тези за разлика от други ограничения. То просто се съхранява като малко свойство на асоциираната колона, а не обект на ограничение.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Одитна пътека с Entity Framework Core

  2. Как да трансформирате данни от редове въз основа на конкретна колона в друга структура от данни

  3. Разбиране на размера на съхранение на „време“ в SQL Server

  4. Премахнете SCHEMABINDING от дефинирана от потребителя функция в SQL Server

  5. идентичност от sql вмъкване чрез jdbctemplate