답변:
오프셋 0x12064의 2 바이트를 보면 데이터베이스의 기본 MDF 파일 버전을 확인할 수 있습니다. MDF 파일의 데이터베이스 버전을 확인하는 방법을 참조하십시오 .
에서 .bak
파일을 하위 바이트는 0xEAC하고 높은 0xEAD입니다.
MS SQL에 대한 대부분의 내부 데이터베이스 버전 번호는 여기에서 찾을 수 있습니다 .
예를 들어 RESTORE HEADERONLY를 사용하십시오.
RESTORE HEADERONLY FROM DISK = 'D:\whatever.bak'
많은 열을 얻을 수 있지만 관심있는 열은 SoftwareVersionMajor, SoftwareVersionMinor 및 SoftwareVersionBuild이며 SQL Server의 버전 번호를 제공해야합니다. 예를 들어 시스템에서 10, 0 및 4000은 10.0.4000 (2008 SP2)을 의미합니다.
그러나 서버가 실행중인 버전에서 복원하기에 너무 오래된 백업으로이 작업을 수행하면 어떻게되는지 확실하지 않습니다. 오류가 발생하고 정보가 표시되지 않을 수 있습니다. 원래 버전).
MDF 파일의 경우 다음 명령을 시도하십시오.
dbcc checkprimaryfile ('c:\MyApp\AppData\foo.mdf', 2)
Database name
, Database version
및 값이 포함 된 3 개의 속성이 출력됩니다 Collation
.
구문은 다음과 같습니다 (명령은 문서화되어 있지 않으므로 자세한 정보는 here ).
DBCC CHECKPRIMARYFILE ({ 'FileName'} [, opt = {0 | 1 | 2 | 3}])
FileName은 SQL Server 데이터베이스 기본 데이터 파일 .mdf 파일의 실제 경로 일뿐입니다.
Opt = 0-파일이 SQL Server 데이터베이스 기본 데이터 파일 (.mdf)인지 확인합니다.
Opt = 1-데이터베이스와 연관된 모든 파일의 데이터베이스 이름, 크기, 최대 크기, 증가, 상태 및 경로를 반환합니다.
Opt = 2-데이터베이스 이름, 버전 및 데이터 정렬 정보를 반환합니다.
Opt = 3-데이터베이스와 관련된 모든 파일의 이름, 상태 및 경로를 반환합니다.
좋은 질문! SQL Server 2008 R2 백업 파일을 SQL Server 2005로 복원하려고 시도하는 시행 착오 과정을 제외하고는 그렇게 생각하지 않습니다. 분명히 작동하지 않습니다. Management Studio를 사용하고 복원을 위해 내용 버튼을 클릭하면 흥미로운 것을 보여줄지 여부를 기억할 수 없습니다.
나는 그것들을 시도하지는 않았지만 Red Gate의 Virtual Restore와 같은 타사 도구가 당신에게 말할 것입니다-그것은 백업 파일을 "내부"에서 데이터베이스를 볼 수있게합니다. http://www.red-gate.com/products/dba/sql-virtual-restore/
데이터베이스의 부팅 페이지에있는 정보를 사용하여이를 찾을 수 있습니다. 나는 이것에 대해 http://sankarreddy.com/2010/05/database-internal-version-create-version-and-current-version/ 에서 썼습니다 .