source

시스템 테이블 마스터의 목적은 무엇입니까?spt_values 및 그 값의 의미는 무엇입니까?

manysource 2023. 7. 9. 11:17

시스템 테이블 마스터의 목적은 무엇입니까?spt_values 및 그 값의 의미는 무엇입니까?

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

그것의 종류, 낮은, 높은 값의 의미는 무엇입니까?

업데이트:
구글 검색은 다음과 같은 수천 개의 "용도"를 제공합니다.

일부 게시물은 향후 버전의 SQL Server에서 제거될 수 있기 때문에 사용에 대해 경고를 표시하지만 새 SQL Server 11(Denali)의 새로운 기능을 설명하기 위해 이미 코드 스크립트가 사용되고 있습니다.

spt_values표는 SQL Server 설명서에 언급되어 있지 않지만 Sybase 시절로 거슬러 올라가며 Sybase 온라인 문서에는 다음과 같이 요약할 수 있는 극히 최소한의 문서가 있습니다.

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

다시 말해서, 코드를 읽고 스스로 해결하세요.

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

이 표는 때때로 MSDN 블로그의 코드 스니펫에도 사용되지만 공식 문서에서는 사용되지 않습니다. 보통 숫자 목록의 편리한 소스로 사용됩니다.그러나 다른 곳에서 논의한 바와 같이, 자신만의 숫자 소스를 만드는 것이 문서화되지 않은 시스템 테이블을 사용하는 것보다 더 안전하고 신뢰할 수 있는 해결책입니다.SQL Server 자체에 '적절한' 문서화된 번호 테이블을 제공하라는 연결 요청도 있습니다.

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

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

그것의 종류, 낮은, 높은 값의 의미는 무엇입니까?

대부분의 유형(즉,각 특정 룩업 테이블(별도인 경우)에는 이름 또는 번호가 필요합니다.일부 유형에는 낮음 및 높음 열도 필요합니다.Sybase에는 ErrorNumber 열이 있으므로 저장 프로시저는 하드 코딩되지 않은(버전에 따라 변경될 수 있음) ERROR를 발생시킬 수 있습니다.

열거된 목록이 사용자에게 "암호화"되지 않는 한 "암호화"되지 않으며, 검색 테이블(모든 목록이 유형 열로 구분됨)일 뿐입니다.

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

--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