<mohammadrony>

Database Location

Listing information about all database files in SQL Server

Get File Status

SELECT
    db.name AS DBName,
    type_desc AS FileType,
    Physical_Name AS Location
FROM
    sys.master_files mf
INNER JOIN
    sys.databases db ON db.database_id = mf.database_id

List database location and size

SELECT
    db.name AS                                   [Database Name],
    mf.name AS                                   [Logical Name],
    mf.type_desc AS                              [File Type],
    mf.physical_name AS                          [Path],
    CAST(
        (mf.Size * 8
        ) / 1024.0 AS DECIMAL(18, 1)) AS         [Initial Size (MB)],
    'By '+IIF(
            mf.is_percent_growth = 1, CAST(mf.growth AS VARCHAR(10))+'%', CONVERT(VARCHAR(30), CAST(
        (mf.growth * 8
        ) / 1024.0 AS DECIMAL(18, 1)))+' MB') AS [Autogrowth],
    IIF(mf.max_size = 0, 'No growth is allowed', IIF(mf.max_size = -1, 'Unlimited', CAST(
        (
                CAST(mf.max_size AS BIGINT) * 8
        ) / 1024 AS VARCHAR(30))+' MB')) AS      [MaximumSize]
FROM
     sys.master_files AS mf
     INNER JOIN sys.databases AS db ON
            db.database_id = mf.database_id

Change Location

detach database files

USE master;
GO
EXEC sp_detach_db 'mydb', 'true';
GO

Using available files

USE master;
GO
CREATE DATABASE mydb ON
(FILENAME = '/var/opt/mssql/data/mydb.mdf'),
(FILENAME = '/var/opt/mssql/data/mydb_log.ldf')
FOR ATTACH;
GO

Without log file

USE master;
GO
CREATE DATABASE mydb ON
(FILENAME = '/var/opt/mssql/data/mydb.mdf')
FOR ATTACH;
GO

ALTER DATABASE mydb
MODIFY FILE (NAME = mydb, FILENAME = '/var/opt/mssql/data/mydb.ldf');
GO