Estoy tratando de obtener la ruta sin el nombre de archivo de ninguna base de datos. Tengo esto hasta ahora:Obtener ruta de archivo físico de cualquier base de datos
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
Funciona cuando reviso mis bases de datos comunes, pero cuando lo probé en la base de datos maestra. Me sale esto:
C: \ Archivos de programa \ Microsoft SQL Server \
Sin embargo, el camino correcto es:
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\
¿Por qué se pierda el resto de la ruta ?
Gracias por todo ayuda?
También debe ser consciente de que una base de datos puede consistir en varios archivos, y cada uno de estos archivos puede estar en una ubicación diferente. Por lo tanto, puede no tener sentido hablar de * la ruta *, en lugar de * una ruta * o * todas las rutas * –