我想从任何数据库中获取没有文件名的路径。我到目前为止:获取任何数据库的物理文件路径
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
它工作时,我检查我的普通数据库,但当我在主数据库上尝试它。我得到这个:
C:\ Program Files文件\ Microsoft SQL Server的\
但是,正确的路径是:
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\
为什么会错过的路径的其余部分?
谢谢大家的帮助?
你也应该知道,一个数据库可以由多个文件,而且这些文件可以在一个不同的位置。因此,讨论*路径*可能没有意义,而不是*路径*或*所有路径* – 2011-01-20 13:11:32