데이터베이스에서 파일 이름없이 경로를 가져 오려고합니다. 나는 지금까지 이것을 가지고있다 :모든 데이터베이스의 실제 파일 경로 가져 오기
declare @db_name varchar (50)
SELECT @db_name = physical_name FROM sys.master_files WHERE database_id = DB_ID(N'master') AND type_desc = 'ROWS'
set @db_name = REVERSE(RIGHT(REVERSE(@db_name),(LEN(@db_name)-CHARINDEX('\', REVERSE(@db_name),1))+1))
print @db_name
평범한 데이터베이스를 점검하지만 master 데이터베이스에서 시도했을 때 작동한다.
C : \ 프로그램 Files \ Microsoft SQL Server를 \
그러나, 올바른 경로는 다음과 같습니다
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\
이 왜 경로의 나머지 부분을 놓치지 않았다 나는이 얻을 ?
모든 도움에 감사드립니다.
당신은 또한 데이터베이스가 여러 개의 파일로 구성 될 수 있음을 알고 있어야합니다, 그리고 각 파일이있을 수 있습니다 다른 위치. 따라서 * 경로 * 또는 모든 경로와 반대되는 경로 *에 대해 이야기하는 것이 타당하지 않을 수 있습니다. –