열에 기본값이있는 테이블이 있습니다. 이 기본값은 column_default
열 information_schema.columns
테이블에 표시되지만 sys.default_constraints
보기에는 표시되지 않습니다.SQL 기본 제약 조건이 sys.default_constraints에 나열되지 않았습니다.
왜 그렇게 말할 수 있습니까?
열에 기본값이있는 테이블이 있습니다. 이 기본값은 column_default
열 information_schema.columns
테이블에 표시되지만 sys.default_constraints
보기에는 표시되지 않습니다.SQL 기본 제약 조건이 sys.default_constraints에 나열되지 않았습니다.
왜 그렇게 말할 수 있습니까?
기본값이 create default X as Y
과 같이 INFORMATION_SCHEMA.COLUMNS
으로 표시되는 경우 더 이상 사용되지 않는 기본값 적용 방법 인 bound default의 일부로 존재합니다.
"현대"제약 시스템의 일부가 아니기 때문에 sys.default_constraints
에 나타나지 않습니다.
기본 제한 조건 세부 사항은 sys.default_constraints
에 표시됩니다. 그러나 그것은 그것이 속하는 컬럼을 포함하지 않습니다.
sys.columns
, sys.objects
, sys.schemas
과 연결해야합니다. 실제 세부 정보를 얻을 수 있습니다. 나는 두 테이블에서 기본 제약 조건의 세부 사항을 얻기 위해 WHERE
절에 테이블 이름을 전달 해요 :이 post
SELECT c.[name], col.[name], c.[definition]
FROM sys.default_constraints c
INNER JOIN sys.columns col ON col.default_object_id = c.object_id
INNER JOIN sys.objects o ON o.object_id = c.parent_object_id
INNER JOIN sys.schemas s ON s.schema_id = o.schema_id
WHERE o.[name] = 'TableName'
GO
SELECT column_name, column_default
FROM information_schema.columns
WHERE Table_name = 'TableName'
AND column_default IS NOT NULL
GO
sys.default_constraints
관련 코드를