当前位置: 首页 > news >正文

SQL sever中库管理

目录

一、创建数据库

1.1库界面方式

1.2SQL命令方式

二、修改数据库

2.1库界面方式

2.2SQL命令方式

三、删除数据库

3.1库界面方式

3.2SQL命令方式

四、附加和分离数据库

4.1附加和分离数据库概述

4.2作用

4.3附加和分离数据库方法

 4.4示例


一、创建数据库

1.1库界面方式

在库界面选择数据库,然后右键选择【新建数据库】;

输入新建库的名字【test1】,其他都默认即可。

左侧状态栏刷新查看:

1.2SQL命令方式

正常情况下使用SQL命令方式创建数据库的时候,需要注意查看下主库中是否已经存在想要创建的数据库名字,如果发现存在该库时应提前删除后再创建,比如我要创建一个名为【mm】的数据库,简单方法就是查看左侧状态栏是否有【mm】数据库,有则手动删除,删除数据库的方法下面会讲。

查看结果库中有【mm】:

使用SQL命令查询方式如下:

--判断数据库文件是否存在,如果存在就删除 
--其中exits是判断()语句是否返回值,如果有就返回true,否则就是false
IF EXISTS(SELECT 1 FROM sys.databases WHERE name='mm')
BEGIN
ALTER DATABASE [mm] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [mm];
END

执行命令行后刷新状态栏查看【mm】已删除:

使用SQL命令方式创建一个名字为【TEST2】的数据库,同时明确指定TEST2的数据文件和日志文件所存储的路径和大小等信息,如下所示:

CREATE DATABASE TEST2   --创建数据库TEST2
ON          --如果是on primary  则表示是定义在主文件组上的文件
(NAME='TEST2_DATA',  --逻辑名称FILENAME='E:\sqlsevertest\TEST2_DATA.MDF',  --物理名称SIZE=5MB,  --初始大小为5MBMAXSIZE=UNLIMITED,   --最大限制为无限大FILEGROWTH=10%  --主数据文件增长幅度为10%
)
LOG ON
(NAME='TEST2_LOG',  --逻辑名称FILENAME='E:\sqlsevertest\TEST2_LOG.LDF',  --物理名称SIZE=5MB,   --初始大小为5MBMAXSIZE=50MB,  --最大限制是50MBFILEGROWTH=1MB	  --事务日志增长幅度为1MB
)
GO

左侧状态栏刷新查看:

二、修改数据库

2.1库界面方式

在库界面左侧找到建立的数据库,比如【test1】,然后右键找到【属性】;

单击【属性】,在弹出窗口中选择【文件】,打开即可对数据库进行修改;

从此位置可以知道该库文件所在的位置以及所有者是谁,可以更改自动增长的数值。

2.2SQL命令方式

使用ALTER DATABASE命令对数据库可进行以下修改:

  • 改变数据文件的大小和增长方式
  • 改变日志文件的大小和增长方式
  • 增加或删除数据文件
  • 增加或删除日志文件
  • 增加或删除文件组

语法格式如下:

ALTER DATABASE database_name
{	ADD FILE <filespec>[,…n][ TO FILEGROUP filegroup_name ]	/*在文件组中增加数据文件*/| ADD LOG FILE <filespec>[,…n]           				/*增加日志文件*/| REMOVE FILE logical_file_name           				/*删除数据文件*/| ADD FILEGROUP filegroup_name          				/*增加文件组*/| REMOVE FILEGROUP filegroup_name      					/*删除文件组*/| MODIFY FILE <filespec>                 				/*更改文件属性*/| MODIFY NAME = new_dbname           					/*数据库更名*/| MODIFY FILEGROUP filegroup_name {filegroup_property | NAME = new_filegroup_name }| SET <optionspec> [ ,...n ] [ WITH <termination> ]   	/*设置数据库属性*/| COLLATE < collation_name > 							/*指定数据库排序规则*/
}
GO

举例如下:

已经创建了数据库【TEST2】,只有一个主数据文件,其逻辑文件名为TEST2_DATA,大小为5MB,最大为50MB,增长方式为按10%增长。即:

①假如修改数据库TEST2现有数据文件的属性,将主数据文件的最大大小改为100MB,增长方式改为按每次5MB增长,命令如下:

ALTER DATABASE TEST2MODIFY FILE (	NAME = TEST2_DATA,  --这里是逻辑名MAXSIZE = 100MB,	--将主数据文件的最大大小改为100MBFILEGROWTH = 5MB	--将主数据文件的增长方式改为按5MB增长			)
GO

查看更改结果:

②为数据库TEST2添加文件组FGROUP,并为此文件组添加两个大小均为10MB的数据文件,命令如下:

ALTER DATABASE TEST2ADD FILEGROUP FGROUP  --新增文件组的名字
GOALTER DATABASE TEST2ADD FILE(NAME = 'TEST2_DATA2',FILENAME = 'E:\sqlsevertest\TEST2_DATA2.ndf',SIZE = 10MB,MAXSIZE = 30MB,FILEGROWTH = 5MB),(	NAME = 'TEST2_DATA3',FILENAME = 'E:\sqlsevertest\TEST2_DATA3.ndf',SIZE = 10MB,MAXSIZE = 30MB,FILEGROWTH = 5MB)TO FILEGROUP FGROUP  --添加到指定文件组
GO

查看文件路径如图所示即创建成功:

③从数据库中删除文件组,将②中添加到TEST2数据库中的文件组FGROUP删除,命令如下:

--先删除文件组中的文件
ALTER DATABASE TEST2REMOVE FILE TEST2_DATA2
GO
ALTER DATABASE TEST2REMOVE FILE TEST2_DATA3
GO--再删除文件组
ALTER DATABASE TEST2REMOVE FILEGROUP FGROUP
GO

查看文件路径如下图所示,即删除成功:

④为数据库TEST2添加一个日志文件,命令如下:

ALTER DATABASE TEST2ADD LOG FILE(	NAME = 'TEST2_LOG2',FILENAME = 'E:\sqlsevertest\TEST2_LOG2.ldf',SIZE = 5MB,MAXSIZE = 10MB,FILEGROWTH = 1MB)
GO

查看文件途径如下所示即添加成功:

⑤从数据库TEST2中删除一个日志文件,将日志文件TEST2_LOG2删除,命令如下:

ALTER DATABASE TEST2REMOVE FILE TEST2_LOG2
GO

查看文件路径如下所示即删除成功:

⑥将数据库TEST2的名改为JUST_TEST2,命令如下:

注意

进行此操作时必须保证该数据库不被其他任何用户使用。

ALTER DATABASE TEST2MODIFY NAME = JUST_TEST2
GO

执行命令后,刷新左侧状态栏查看,如下所示即修改成功:

三、删除数据库

3.1库界面方式

选择需要删除的数据库,然后在其上右键选择【删除】,

在弹出窗口中选择确定即可删除当前数据库;

3.2SQL命令方式

删除数据库使用DROP DATABASE 。。。命令,语法如下:

DROP DATABASE database_name[,…n][;]
GO

比如删除数据库test1,

DROP DATABASE test1
GO

刷线状态栏查看结果已删除成功:

四、附加和分离数据库

4.1附加和分离数据库概述

在SQL Server中,附加和分离数据库是用于管理数据库的两种操作。

  1. 附加数据库的目的:
    附加数据库用于将已经存在的数据库文件(数据文件和日志文件)连接到SQL Server实例,并使其可用于查询和操作。附加数据库的主要作用是将现有的数据库文件加入到SQL Server的数据库列表中。通过附加数据库,可以将数据库从一个环境迁移到另一个环境,或者在不同的SQL Server实例之间共享数据库。

  2. 分离数据库的目的:
    分离数据库用于从SQL Server实例中移除数据库,但保留数据库文件本身。通过分离数据库,可以将数据库从SQL Server实例中分离,而不会删除数据库文件。分离数据库的主要作用是在需要进行一些数据库维护操作或将数据库移动到其他服务器时,暂时从服务器中移除数据库,而不删除它。这可以使数据库在分离期间保持无法访问和修改的状态。

4.2作用

附加和分离数据库提供了方便的方式来管理数据库,并支持数据库的迁移、备份和恢复,以及将数据库从一个环境或服务器移动到另一个环境或服务器。

4.3附加和分离数据库方法

在SQL Server中,附加和分离数据库有以下方法:

4.3.1通过 SQL Server Management Studio (SSMS) 进行附加和分离。

  • 附加数据库:在SSMS中,右键点击"数据库",选择"附加",浏览并选择要附加的数据库文件,点击"确定"。
  • 分离数据库:在SSMS中,右键点击要分离的数据库,选择"任务",然后选择"分离"。

4.3.2使用 T-SQL 命令进行附加和分离。

  • 附加数据库:
CREATE DATABASE [数据库名称] ON 
(FILENAME = '数据库文件路径\DataFileName.mdf'),
(FILENAME = '数据库日志文件路径\LogFileName.ldf')
FOR ATTACH;
  • 分离数据库:
EXEC sp_detach_db N'数据库名称', N'false';

4.3.3使用 PowerShell 进行附加和分离

  • 附加数据库
$server = New-Object Microsoft.SqlServer.Management.Smo.Server "服务器名称"
$db = New-Object Microsoft.SqlServer.Management.Smo.Database $server, "数据库名称"
$db.Attach("$数据库文件路径\DataFileName.mdf",$数据库日志文件路径\LogFileName.ldf")
  • 分离数据库:
$server = New-Object Microsoft.SqlServer.Management.Smo.Server "服务器名称"
$db = $server.Databases["数据库名称"]
$db.DatabaseOptions.UserAccess = [Microsoft.SqlServer.Management.Smo.DatabaseUserAccess]::Single
$db.Alter(TSqlModel.DatabaseOptionsModification.Detach)

注意:

这些方法可能有些差异,需要根据使用的SQL Server版本和工具选择合适的方法。 

 4.4示例

以下是使用T-SQL语句进行SQL Server附加和分离数据库的示例:

  • 附加数据库:
    USE [master];  --使用主数据库-- 创建一个数据库
    CREATE DATABASE [TestDB]
    ON (FILENAME = 'C:\TestDB\TestDB.mdf'),(FILENAME = 'C:\TestDB\TestDB_Log.ldf')
    FOR ATTACH;
  • 请确保提供正确的数据库文件路径和文件名。

  • CREATE DATABASE [TestDB]:创建一个名为TestDB的数据库。
  • ON:指定要将数据库文件和日志文件放置的位置。
    • FILENAME = 'C:\TestDB\TestDB.mdf':指定数据库的主要数据文件(TestDB.mdf)的路径和文件名。
    • FILENAME = 'C:\TestDB\TestDB_Log.ldf':指定数据库的事务日志文件(TestDB_Log.ldf)的路径和文件名。
  • FOR ATTACH:将创建的数据库附加到SQL Server实例中。这意味着数据库可以被查询和操作。

需要注意的是,在运行该语句之前,确保数据库文件(TestDB.mdf和TestDB_Log.ldf)已经存在,并且指定的文件路径是正确的。

  • 分离数据库:
USE [master];-- 分离数据库
EXEC sp_detach_db 'TestDB', 'true';

这将分离名为"TestDB"的数据库。第二个参数设置为'true'表示不保存分离状态的元数据信息。

注意:

这些示例假设数据库文件和日志文件已经存在,并且通过提供正确的路径和文件名进行附加和分离操作。确保在执行任何重要数据操作之前创建数据库备份或做好必要的预防措施。

相关文章:

SQL sever中库管理

目录 一、创建数据库 1.1库界面方式 1.2SQL命令方式 二、修改数据库 2.1库界面方式 2.2SQL命令方式 三、删除数据库 3.1库界面方式 3.2SQL命令方式 四、附加和分离数据库 4.1附加和分离数据库概述 4.2作用 4.3附加和分离数据库方法 4.4示例 一、创建数据库 1.1库…...

模板方法模式简介

概念&#xff1a; 模板方法模式是一种行为型设计模式&#xff0c;它定义了一个算法的骨架&#xff0c;将一些步骤延迟到子类中实现。该模式通过在抽象类中定义一个模板方法来控制算法的流程&#xff0c;并使用具体方法来实现其中的某些步骤。 特点&#xff1a; 定义了一个算…...

自动化运维工具-------Ansible(超详细)

一、Ansible相关 1、简介 Ansible是自动化运维工具&#xff0c;基于Python开发&#xff0c;分布式,无需客户端,轻量级&#xff0c;实现了批量系统配置、批量程序部署、批量运行命令等功能&#xff0c;ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是a…...

计算机毕设 基于生成对抗网络的照片上色动态算法设计与实现 - 深度学习 opencv python

文章目录 1 前言1 课题背景2 GAN(生成对抗网络)2.1 简介2.2 基本原理 3 DeOldify 框架4 First Order Motion Model5 最后 1 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要…...

Citespace、vosviewer、R语言的文献计量学 、SCI

文献计量学是指用数学和统计学的方法&#xff0c;定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体&#xff0c;注重量化的综合性知识体系。特别是&#xff0c;信息可视化技术手段和方法的运用&#xff0c;可直观的展示主题的研究发展历程、研究现状、研究…...

linux操作系统的权限的深入学习

1.Linux权限的概念 Linux下有两种用户&#xff1a;超级用户&#xff08;root&#xff09;、普通用户。 超级用户&#xff1a;可以再linux系统下做任何事情&#xff0c;不受限制 普通用户&#xff1a;在linux下做有限的事情。 超级用户的命令提示符是“#”&#xff0c;普通用户…...

LeetCode——三数之和(中等)

题目 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 …...

SpringMVC使用

文章目录 一.MVC基础概念1.MVC定义2.SpringMVC和MVC的关系 二.SpringMVC的使用1.RequestMapping2.获取参数1.获取单个参数2.传递对象3.后端参数重命名&#xff08;后端参数映射&#xff09;4.获取URL中参数PathVariable5.上传文件RequestPart6.获取Cookie/Session/header 3.返回…...

【css】css奇数、偶数、指定数选择器:

文章目录 一、简单数字序号写法:nth-child(number)二、倍数写法:nth-child(an)三、倍数分组匹配:nth-child(anb) 与 :nth-child(an-b)四、反向倍数分组匹配:nth-child(-anb)五、奇偶匹配:nth-child(odd) 与 :nth-child(even) :nth-child(n) 选择器匹配属于其父元素的第 N 个子元…...

三维数据Ply格式介绍与读取

三维数据Ply格式介绍与读取 PLY文件格式是在1990年代中期由斯坦福大学的一组研究人员开发的。它已经发展成为最广泛使用的3D数据文件格式之一。该文件格式有ASCII版本和二进制版本。在需要文件大小和处理效率的情况下,首选二进制版本。ASCII版本使得调试变得非常容易。在这里…...

内存管理方式

内存管理 一、C/C内存分布1、内存空间的介绍2、示例题目3、示例题目图解 二、C语言动态内存管理方式1、代码2、介绍 三、C内存管理方式1、概念2、代码3、代码所代表的意义 四、new和delete操作自定义类型1、代码2、运行结果3、特点 五、operator new与operator delete函数1、概…...

文心一言接入Promptulate,开发复杂LLM应用程序

简介 最近在尝试将文心一言的LLM能力接入Promptulate&#xff0c;故写了一篇博客记录一下&#xff0c;Promptulate 是 Promptulate AI 旗下的大语言模型自动化与应用开发框架&#xff0c;旨在帮助开发者通过更小的成本构建行业级的大模型应用&#xff0c;其包含了LLM领域应用层…...

TDengine函数大全-聚合函数

以下内容来自 TDengine 官方文档 及 GitHub 内容 。 以下所有示例基于 TDengine 3.1.0.3 TDengine函数大全 1.数学函数 2.字符串函数 3.转换函数 4.时间和日期函数 5.聚合函数 6.选择函数 7.时序数据库特有函数 8.系统函数 聚合函数 TDengine函数大全APERCENTILEAVGCOUNTELAPS…...

DRM全解析 —— ADD_FB(2)

接前一篇文章&#xff1a;DRM全解析 —— ADD_FB&#xff08;1&#xff09; 本文参考以下博文&#xff1a; DRM驱动&#xff08;四&#xff09;之ADD_FB 特此致谢&#xff01; 上一回围绕libdrm与DRM在Linux内核中的接口&#xff1a; DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB, d…...

windows下docker compose方式挂载数据卷volume遇到的问题

例子一&#xff0c;windows 下docker desk top部署TDengine td-compose.yml version: 3 services:tdengine1:image: tdengine/tdengine:latestcontainer_name: tdengine1hostname: tdengine1ports:- 6030:6030- 6041:6041- 6043-6049:6043-6049- 6043-6049:6043-6049/udpresta…...

TCP三次握手四次挥手总结

目录 一、两种传输模式&#xff1a; 二、数据方向&#xff1a; 三、端口的作用&#xff1a; 四、端口类型&#xff1a; 五、三次握手&#xff1a; 六、四次断开 常见面试题 TCP&#xff08;Transfer control protocol&#xff09;传输控制协议 一、两种传输模式&#x…...

【0901作业】QTday3 对话框、发布软件、事件处理机制,使用文件相关操作完成记事本的保存功能、处理键盘事件完成圆形的移动

目录 一、思维导图 二、作业 2.1 使用文件相关操作完成记事本的保存功能 2.2 处理键盘事件完成圆形的移动 一、思维导图 二、作业 2.1 使用文件相关操作完成记事本的保存功能 void Widget::on_saveBtn_clicked() {QString filename QFileDialog::getSaveFileName(this,&…...

mysql数据库运行sql:datetime(0) NULL DEFAULT NULL报错【杭州多测师_王sir】

一、错误信息 CREATE TABLE file (id varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 文件md5,name varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,create_time datetime(0) NULL DEFAULT NULL,update_time date…...

手撕二叉平衡树

今天给大家带来的是平衡树的代码实现&#xff0c;如下&#xff1a; #pragma once #include <iostream> #include <map> #include <set> #include <assert.h> #include <math.h> using namespace std; namespace cc {template<class K, clas…...

超图嵌入论文阅读1:对偶机制非均匀超网络嵌入

超图嵌入论文阅读1&#xff1a;对偶机制非均匀超网络嵌入 原文&#xff1a;Nonuniform Hyper-Network Embedding with Dual Mechanism ——TOIS&#xff08;一区 CCF-A&#xff09; 背景 超边&#xff1a;每条边可以连接不确定数量的顶点 我们关注超网络的两个属性&#xff1…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...