SQL Server 의 기본 값 을 가 진 모든 필드 의 문 구 를 보 여 줍 니 다.
3895 단어 SQL Server기본 값필드
SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value"
FROM dbo.sysobjects SO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id
LEFT JOIN dbo.syscomments SM ON SC.cdefault = SM.id
WHERE SO.xtype = 'U'
ORDER BY SO.[name], SC.colid
sysobjects 는 우리 에 게 표 메타 데 이 터 를 제공 했다.이 예 에서 우 리 는 표 이름 에 만 관심 이 있다.syscolumns 표 는 표 의 각 필드 와 연 결 된 메타 데 이 터 를 저장 합 니 다.이 예 에서 우 리 는 필드 이름 만 필요 합 니 다.마지막 으로 기본 값 메타 데 이 터 는 syscoments 표 에서 제공 합 니 다.Northwind 데이터베이스 에서 이 조 회 를 실행 하면 다음 결 과 를 생 성 합 니 다.왼쪽 조인 이 syscoments 표 에 있 기 때문에 NULL 기본 값 을 되 돌려 줍 니 다.지금 나 는 이 좋 은 기본 조회 버 전에 어떤 선택 이 있 는 지 생각 하고 있다.선택 1:특별한 기본 값 을 검색 합 니 다.WHERE 조건 문 구 를 편집 하면 모든 표 에서 특별한 기본 값 을 볼 수 있 습 니 다. Quote: SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value" FROM dbo.sysobjects SO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id LEFT JOIN dbo.syscomments SM ON SC.cdefault = SM.id WHERE SO.xtype = 'U' AND SM.TEXT = '(0)' ORDER BY SO.[name],SC.colid 선택 2:기본 값 필드 가 있 는 정보 수정 핵심 검색 어 를 가 진 WHERE 조건문 만 되 돌려 줍 니 다.syscoments.text 표 의 NULL 값 을 무시 합 니 다.이 기 교 는 다음 과 같 습 니 다.Quote:
SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value"
FROM dbo.sysobjects SO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id
LEFT JOIN dbo.syscomments SM ON SC.cdefault = SM.id
WHERE SO.xtype = 'U' AND SM.TEXT IS NOT NULL
ORDER BY SO.[name], SC.colid
단,FROM 조건 을 문장의 JOIN 에서 하나의 LEFT JOIN 에서 하나의 INNER JOIN 으로 바 꾸 면 최적화 가 제 공 됩 니 다.Quote:
SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value"
FROM dbo.sysobjects SO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id
INNER JOIN dbo.syscomments SM ON SC.cdefault = SM.id
WHERE SO.xtype = 'U'
ORDER BY SO.[name], SC.colid
사실은 또 다른 선택 이 있 습 니 다.SQL 2005 의 시스템 디 렉 터 리 보 기 를 이용 합 니 다.앞의 조 회 는 저 에 게 이때 필요 한 정 보 를 제공 해 주 었 고 SQL 2000 과 SQL 2005 에서 모두 사용 할 수 있 습 니 다.SQL 2000 인 스 턴 스 에서 이 기본 값(실제 기본 제약)과 관련 된 추가 메타 데 이 터 를 발굴 할 수 있 습 니 다.이 조 회 를 시스템 디 렉 터 리 보기에 지정 하면 이전 조회 에서 표시 되 지 않 은 추가 정 보 를 얻 을 수 있 습 니 다.Quote:
SELECT ST.[name] AS "Table Name", SC.[name] AS "Column Name", SD.definition AS "Default Value", SD.[name] AS "Constraint Name"
FROM sys.tables ST INNER JOIN sys.syscolumns SC ON ST.[object_id] = SC.[id]
INNER JOIN sys.default_constraints SD ON ST.[object_id] = SD.[parent_object_id] AND SC.colid = SD.parent_column_id
ORDER BY ST.[name], SC.colid
그래서 기억 하 세 요.더 좋 은 방법 이 없다 는 것 을 알 게 되 었 기 때문에 데이터 베이스 관리자 로 서 의 본능 에 의 해 연구 합 니 다.너 는 네가 무엇 을 얻 을 수 있 는 지 영원히 알 지 못 할 것 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQL Server의 여러 데이터베이스 통합 백업이 문서는 거울입니다.최신 정보를 보려면 다음 Qita 문서를 확인하십시오. SQL Server의 여러 데이터베이스를 통합 백업하는 데 사용되는 T-SQL입니다.마이그레이션할 때 데이터베이스를 통일적으로 백업할 때 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.