Sql 서버 의 시스템 보기 상세 설명

원래 이 시 리 즈 는 무엇 을 써 야 좋 을 까 생각 했 습 니 다.나중에 여러분 이 프로그래머 로 서 가장 많이 사용 하 는 것 은 데이터 베 이 스 를 사용 하 는 것 이 라 고 생각 했 습 니 다.그러나 사실은 저 처럼 일 선 에서 일 하 는 코드 농 들 이 많 습 니 다.sql 에 대해 수박 겉 핥 기 식 으로 알 고 있 습 니 다.최적화 와 데이터 베이스 베이스 에 대한 인식 은 말 하지 마 세 요.저도 그렇습니다.
 시스템 보기
1.시스템 보 기 는 무엇 을 합 니까?
이름 만 봐 도 시스템 보기 인가요?잘 맞 혔 다 면 sqlserver 시스템 의 정 보 를 저장 하 는 것 입 니 다.좋 습 니 다.축하합니다.정 답 입 니 다.
 2.어디 에 정의 되 나 요?
   눈 에 띄 게 캡 처 해 보 세 요.캡 처 에서 볼 수 있 습 니 다.'시스템 데이터 베이스'든'사용자 데이터 베이스'든 모두 시스템 보기 가 있 고 한눈 에 훑 어 보 니 이름 도 똑 같 습 니 다.


 3.이 시스템 보 기 를 보면 어떤 혜택 을 줄 수 있 습 니까?
   Q1:제 가 시스템 을 유지 할 때 데이터베이스 에 표 의 필드 가'state'라 는 것 만 알 았 는데 그 표 에 정의 되 어 있 는 것 을 잊 었 습 니 다.어떻게 찾 아야 합 니까?
A1:이것 은 간단 합 니 다.sqlserver 에서"INFORMATION"이라는 시스템 보 기 를 제공 합 니 다."SCHEMA.COLUMNS",캡 처 해 보 겠 습 니 다.

    이 시스템 보기 이름 의 이 SCHEMA 라 는 단 어 를 통 해 알 수 있 듯 이 원래 표 구 조 를 저장 하 는 보기 이 고 이 필드 의'순위','기본 값'등 특성,토탄,시원 한 느낌 이 들 지 않 습 니까?
   Q2:나 는 C\#코드 에서 저장 프로 세 스 이름 인'Category Insert'를 보 았 다.나 는 그것 의 소스 코드 를 보고 싶 지만 나의 table 에 저장 프로 세 스 가 수천 개 라 서 나 로 하여 금 하나씩 찾 아 보 세 요..................................................................
  A2:so easy。。。알려 드릴 게 요.생각 지도 못 한 것 만 있 습 니 다.시스템 보기 없 이 는 할 수 없습니다.저장 프로 세 스 코드 만 간단하게 볼 수 있 지 않 습 니까?sys.sql_modules 가 해 줄 수 있어.

 
Q3:이런 방법 은 좋 지만 copy 의 definition 필드 는 포맷 되 지 않 았 습 니 다...형님,수천 줄 에 달 하 는 sql 입 니 다.포맷 하고 싶 은 출력 어 떡 하지?고맙습니다.
A3:확실히 말씀 하신 대로 출력 을 포맷 하면 시스템 View 는 여기까지 만 도와 드릴 수 있 습 니 다.하늘 과 땅 이 무 너 지 는 길 을 지나 지 않 아 시스템 저장 과정 을 사용 할 수 있 습 니 다.그 안에 신기 한 sp 가 있 습 니 다.helptext,꿈 을 이 루 세 요.고 맙 지 않 아 도 됩 니 다.
  
2.시스템 보기 에 대한 사고
위의 코드 에서 나 는 두 개의 시스템 view,하나의 proc 가 우리 에 게 가 져 다 준 복 지 를 보 여 주 었 다.그러면 자세히 보면 두 가지 의혹 이 생 길 것 이다.
 1:시스템 뷰 는 어디에서 정의 합 니까?
이 문 제 는 정말 잘 물 었 습 니 다.글 을 시작 할 때 부터 저 는 제 사용자 라 이브 러 리 MYPETSHOP 에 시스템 view 가 많다 는 것 을 알 고 있 었 습 니 다.그런데 저 는 이런 view 를 정의 하지 않 았 습 니 다.하늘 이 저 에 게 증명 해 줄 수 있 습 니 다.그 문 제 는 매우 신 비 롭 습 니 다.system view 는 도대체 어디에서 왔 습 니까?이 문 제 는 sqlserver 팀 에 게 만 물 어 볼 수 있 습 니 다.그들 은 system view 를 모두 숨겨 진 resource 데이터베이스 에 넣 었 습 니 다.이 데이터 베 이 스 는 어디 에 있 습 니까?찾 아 줄 게.

 찾 은 후에 저 는 지금 계속 추가 하 겠 습 니 다.만약 당신 이 똑똑 하 다 면 직접 불 러 올 수 없습니다.그렇지 않 으 면 프로 세 스 가 사용 중이 라 고 보고 할 것 입 니 다.그 이 유 는 당신 도 알 고 있 을 것 이 라 고 생각 합 니 다.
 
 해결 방법 도 간단 합 니 다.우 리 는 copy 를 E 판 까지 만 듭 니 다.그리고 이 복사 본 을 추가 하면 됩 니 다.

 추가 되 었 으 니 지금 제 느낌 은 잠시 도 지체 하지 않 고 보 러 가 는 것 입 니 다.세심 한 당신 은 아래 의 캡 처 를 통 해 무엇 을 알 아야 할 지 생각 합 니 다.이 view 들 은'시스템 보기'폴 더 아래 에 있 는 것 이 아니 라 사용자 보기 로 서 의 것 입 니 다.그 렇 죠...

 2:시스템 view 의 데이터 원본 은 어디 에 있 습 니까?
    이것 도 매우 전형 적 인 문제 입 니 다.view 인 이상 모두 가 알 고 싶 습 니 다.사실은 이것 이 바로 허 표 의 뜻 입 니 다.허 표 인 이상 기초 표 는 어디 에 있 습 니까?이 문 제 를 가지 고 제 MYPETSHOP 데이터 베 이 스 를 뒤 져 보 겠 습 니 다.

 위의 시스템 기 표 는 텅 비 었 고 황 학 은 한 번 가면 다시 돌아 오지 않 고 흰 구름 이 천년 동안 유유히 흐 르 는 것 을 볼 수 있다.더 큰 의문 이 생 겼 다.기본 표 조차 없다 면 이 DB 의 system view 는 도대체 누 구 를 찾 는 것 일 까?이거 뻥 아니 야???근 데 진짜 없 는 거 야?당신 이 보지 못 했다 고 해서 정말 없 는 것 은 아 닙 니 다.계속 system view 로 우리 의 힘 을 빌 수 있 습 니 다.다음은 sys.objects 로 탐구 할 수 있 습 니 다.

 자,대충 이렇게 많이 얘 기 했 어.시간 이 늦 었 으 니까 씻 고 자...

좋은 웹페이지 즐겨찾기