program tip

시스템 테이블 master..spt_values의 목적은 무엇이며 해당 값의 의미는 무엇입니까?

radiobox 2020. 12. 13. 09:10
반응형

시스템 테이블 master..spt_values의 목적은 무엇이며 해당 값의 의미는 무엇입니까?


시스템 테이블 master..spt_values의 목적은 무엇입니까?
왜 제공되었고 어떻게 사용해야합니까?

유형, 낮은 값, 높은 값의 의미는 무엇입니까?

업데이트 :
Google 검색은 수천 개의 "용도"를 제공합니다. 예를 들면 다음과 같습니다.


spt_values테이블은 SQL Server 문서에 언급되어 있지 않지만 Sybase 시대로 거슬러 올라가며이 주석에서 요약 할 수있는 Sybase 온라인 문서에는 극히 최소한의 문서 가 있습니다.

사용 방법을 보려면 sp_helptext를 실행하고이를 참조하는 시스템 프로 시저 중 하나에 대한 텍스트를보십시오.

즉, 코드를 읽고 스스로 해결하십시오.

시스템 저장 프로 시저를 살펴보고 테이블 데이터 자체를 살펴보면 테이블이 코드를 읽을 수있는 문자열로 변환하는 데 사용된다는 것이 분명합니다. 또는 위에 링크 된 Sybase 문서에 "내부 시스템 값 [...]을 사람이 읽을 수있는 형식으로 변환"

표는 때때로 MSDN 블로그의 코드 스 니펫에서 사용 되지만 공식 문서에서는 사용되지 않습니다. 일반적으로 숫자 목록의 편리한 소스로 사용됩니다. 그러나 다른 곳 에서 논의했듯이 자신 만의 숫자 소스를 만드는 것이 문서화되지 않은 시스템 테이블을 사용하는 것보다 더 안전하고 신뢰할 수있는 솔루션입니다. SQL Server 자체에 '적절한'문서화 된 숫자 테이블을 제공하기위한 연결 요청있습니다.

어쨌든,이 테이블은 완전히 문서화되지 않았기 때문에 적어도 실제적인 관점에서 보면 테이블에 대해 아는 데 큰 가치가 없습니다. 다음 서비스 팩이나 업그레이드가 완전히 변경 될 수 있습니다. 물론 지적 호기심은 다른 것입니다 :-)


대부분 다른 질문에 답변했습니다 .

유형, 낮은 값, 높은 값의 의미는 무엇입니까?

대부분의 유형 (즉, 각각의 특정 룩업 테이블이 분리 된 경우)에는 이름 또는 번호가 필요합니다. 일부 유형에는 Low 및 High 열도 필요합니다. Sybase에는 ErrorNumber 열이 있으므로 sproc은 하드 코딩되지 않은 RAISERROR를 수행 할 수 있습니다 (버전 등에 따라 변경 될 수 있음).

열거 된 목록이 "암호화"되지 않는 한 "암호화"되지 않습니다. 이는 단지 조회 테이블 일뿐입니다 (모두 유형 열로 구분됨).


기본 용도가 아닌 한 가지 용도는 일련의 숫자를 생성하는 것입니다.

--Generate a series from 1 to 100
SELECT
    TOP 100
    ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS RowNum
FROM master.dbo.spt_values ORDER BY RowNum

참고 URL : https://stackoverflow.com/questions/4273723/what-is-the-purpose-of-system-table-master-spt-values-and-what-are-the-meanings

반응형