sqlserver數據庫文件相關知識


在SQL Server 數據庫中

文件有三大類:

  主數據文件:擴展名為.mdf。

    主數據文件是數據庫的關鍵文件,是所有數據文件的起點,包含指向其他數據庫文件的指針,每個數據庫都必須有且僅有一個主文件

  輔數據文件:擴展名為.ndf。

     輔助主文件存儲數據,包含不在主文件內的其他數據,一個數據庫可以有0~n個輔文件

  日志文件:擴展名為.ldf。

    記錄存放恢復數據庫時所需要的所有日志信息,一個數據庫可有1~n個日志文件

 一個數據庫必須至少包含一個主數據文件和一個日志文件。

文件組分為兩種:

主文件組(PRIMARY)

  存放主數據庫文件和任何沒有明確指定文件組的其他文件。

用戶定義文件組

  在創建火修改數據庫時,用FileGroup關鍵字定義的文件組,存放輔數據文件。

 

文件組的特性:

(1)一個文件只能屬於一個文件組;

(2)只有數據文件才能歸屬於某個文件組,日志文件不屬於任何文件組;

(3)每個數據庫中都有一個默認的文件組在運行,可以指定默認文件組,沒有指定的話,則默認為主文件組;

(4)若沒有用戶定義文件組,則所有的數據文件都存放在主文件組中。

 查看文件存放位置

選擇對應的數據庫文件,右擊屬性,選擇文件,即可查找文件存放的位置;

 

 使用命令的方式查詢文件存放位置

select database_id,name,physical_name AS CurrentLocation,state_desc,size
from sys.master_files 
where database_id=db_id(N'master');

修改存放位置

alter database 數據庫名 modify file ( name = 文件名(不包含后綴), filename = '文件存儲路徑');
alter database 數據庫名 modify file ( name = 文件名(不包含后綴), filename = '文件存儲路徑');

alter database testDb modify file ( name = testDb, filename = 'D:\Program Files\SQL_DATA\testDb\testDb.mdf');
alter database testDb modify file ( name = testDb_log, filename = 'D:\Program Files\SQL_DATA\testDb\testdb_log.ldf');

后續其他文件也統一存放,需要修改默認配置:

EXEC xp_instance_regwrite 
@rootkey='HKEY_LOCAL_MACHINE', 
@key='Software\Microsoft\MSSQLServer\MSSQLServer', 
@value_name='DefaultData', 
@type=REG_SZ, 
@value='D:\Program Files\MSSQL_MDF\Data' 
GO 
EXEC master..xp_instance_regwrite 
@rootkey='HKEY_LOCAL_MACHINE', 
@key='Software\Microsoft\MSSQLServer\MSSQLServer', 
@value_name='DefaultLog', 
@type=REG_SZ, 
@value='D:\Program Files\MSSQL_MDF\Data' 
GO

 

Management studio的使用

參考官方文檔

https://docs.microsoft.com/zh-cn/sql/ssms/tutorials/connect-query-sql-server?view=sql-server-ver15

創建一個名為 TutorialDB 的數據庫:

USE master
GO
IF NOT EXISTS (
   SELECT name
   FROM sys.databases
   WHERE name = N'TutorialDB'
)
CREATE DATABASE [TutorialDB]
GO

執行查詢,請選擇“執行”(或選擇鍵盤上的 F5)

在新創建的 TutorialDB 數據庫中創建一個表。

USE [TutorialDB]
-- Create a new table called 'Customers' in schema 'dbo'
-- Drop the table if it already exists
IF OBJECT_ID('dbo.Customers', 'U') IS NOT NULL
DROP TABLE dbo.Customers
GO
-- Create the table in the specified schema
CREATE TABLE dbo.Customers
(
   CustomerId        INT    NOT NULL   PRIMARY KEY, -- primary key column
   Name      [NVARCHAR](50)  NOT NULL,
   Location  [NVARCHAR](50)  NOT NULL,
   Email     [NVARCHAR](50)  NOT NULL
);
GO

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM