sqlserver数据库文件相关知识
Posted 囧囧x鑫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于sqlserver数据库文件相关知识的主要内容,如果未能解决你的问题,请参考以下文章
使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段
sql server运行中,是不是能删除主数据库事务日志文件