300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > SQL语句数据库的创建 修改 分离 附加 备份 还原

SQL语句数据库的创建 修改 分离 附加 备份 还原

时间:2021-05-20 17:55:44

相关推荐

SQL语句数据库的创建 修改 分离 附加 备份 还原

目录

1.数据库的创建:

2.数据库的修改

3.数据库的分离

4.数据库的附加

5.数据库备份

6.数据库还原

1.数据库的创建:

--SCT为要创建的数据库名称create database SCTon primary(name='student1',--主数据文件的逻辑名filename='C:\SCT\DATA\student1.mdf',//数据文件的存储路径size=10MB,--初始大小filegrowth=10%,--每次增容时增加的容量大小maxsize=100MB--主文件的最大增长值,unlimited是无限制),(name='student2',--辅助数据文件filename='C:\SCT\DATA\student2.mdf',size=20MB,filegrowth=10MB,maxsize=200MB)log on(name='studentlog1',filename='C:\SCT\LOG\studentlog1.ldf',size=30MB,filegrowth=2MB,maxsize=500MB),(name='studentlog2',filename='C:\SCT\LOG\studentlog2.ldf',size=30MB,filegrowth=2MB,maxsize=500MB)

on primary 的意思是是指定主文件组中包含的文件。

LOG ON 就是指定数据库日志文件,用来对数据库的操作日志。

在主(辅)数据文件或者日志文件中的属性参考上述代码的注释。

2.数据库的修改

例子:

修改SCT数据库,增加一个“fg”文件组,并向文件组(fg)中添加数据文件。

详细解释请看注释

--修改SCT数据库,添加文件组fgalter database SCT add filegroup fg--向fg文件组中添加数据文件alter database SCT add file(name='student3',filename='D:\SCT\student3.ndf',size=5MB,maxsize=20MB,filegrowth=15%)to filegroup fg--指向fg文件组,fg是一个文件组名

修改SCT数据库,增 加一个辅助数据文件student3,保存在“D:\SCT”文件夹中,且存放到“fg” 文件组中,初始大小5MB,最大容量是20MB,每次增长15%。

alter database SCT add log file(name =log1,--名称filename='D:\SCT\',--路径size=3MB,maxsize=10MB,filegrowth=15%)

修改SCT数据库,删除辅助数据文件student3.

alter database SCT remove file student3--删除数据文件以下是对数据库的其他操作--remove FILEGROUP 文件组名称 --删除文件组--MODIFY FILE <filespec> --更改文件属性--MODIFY NAME=新数据库名称 /*更改数据库名称--MODIFY FILEGROUP 文件组名称 {文件组属性|NAME=新文件组名称}--更改文件组属性,包括更改文件组名称

alter database SCT remove file <删除文件名字>(参考上述例子)

3.数据库的分离

--例句数据库SCT分离execute sys.sp_detach_db @dbname='SCT'

[@dbname=] ‘database_name’

database_name是要分离的数据库的名称

database_name是sysname值,默认值为NULL。

4.数据库的附加

附加数据库SCT

execute sp_attach_db SCT ,'C:\SCT\DATA\student1.mdf','C:\SCT\LOG\studentlog1.ldf'/*附加操作的语法:execute sp_sttsch_db [@dbname=] ‘dbname’,[@filename1=]’filename_n’,[……16] [@dbname=]‘dbnam_‘要附加到服务器的数据库的名称,该名称必须是唯一的。Dbname的值为sysname,默认值为NULL。[@filename1=]’filename_n’是数据库物理名称,包括路径。最多可以指定16个文件名。*/

另外一种语法:

--附加数据库语句--database_name为数据库的名字CREATE DATABASE database_nameON <filespec> [ ,...n ]FOR {ATTACH | ATTACH_REBUILD_LOG}--attach(附加)--for attach_rebuild_log--指定通过附加一组现有的操作系统文件来创建数据库。该选项只限于读/写数据库。--必须有一个指定主文件的 <filespec> 项。如果缺少一个或多个事务日志文件,将重新生成日志文件。例子:create database database_nameon (filename='数据库分离的数据文件完整路径'),(filename='数据库分离的日志文件完整路径')for attach

详细查看下述代码:

--语法一--声明数据库引用use other_database_name;go--附加数据库create database database_nameon (filename='mdf_path'),(filename='ldf_path')for attachgo--语法二--声明数据库引用use other_database_name;go--附加数据库create database database_nameon (name='logical_file_name',filename='filestream_path',size= size_number [ KB | MB | GB | TB ],maxsize= { max_size_number [ KB | MB | GB | TB ] | unlimited },filegrowth= growth_increment [ KB | MB | GB | TB | % ]),(name='logical_log_file_name'filename='log_filestream_path',size= size_number [ KB | MB | GB | TB ],maxsize= { max_size_number [ KB | MB | GB | TB ] | unlimited },filegrowth= growth_increment [ KB | MB | GB | TB | % ])for { attach with[ enable_broker | new_broker | error_broker_conversations ][,restricted_user][,filestream ( directory_name={ 'directory_name' | NULL })]| attach_rebuild_log }go语法解析--语法解析--other_database_name--其它数据库,不能使用要附加的数据库进行附加。--database_name--新数据库的名称。数据库名称在SQL Server的实例中必须唯一,并且必须符合标识符规则。--mdf_path--数据库分离的数据文件完整路径。--ldf_path--数据库分离的日志文件完整路径。--name--指定文件的逻辑名称。 指定filename时,--需要使用name,除非指定for attach子句之一。 无法将filestream文件组命名为primary。--logical_file_name--在SQL Server中引用文件时所用的逻辑名称。 Logical_file_name在数据库中必须唯一,并且必须符合标识符规则。--名称可以是字符或Unicode常量,也可以是常规标识符或分隔标识符。--filename--指定操作系统(物理)文件名称。--filestream_path--数据库数据文件完整路径--logical_log_file_name--数据库日志名称。--log_filestream_path--数据库日志文件完整路径--size--指定文件的大小。--将 os_file_name 指定为UNC路径时,不能指定SIZE。 SIZE不适用于FILESTREAM文件组。--size_number--文件的初始大小。--maxsize--指定文件可增大到的最大大小。将os_file_name指定为UNC路径时,不能指定maxsize。--max_size_number--最大的文件大小。可以使用 KB、MB、GB 和 TB 后缀。默认值为 MB。指定一个整数,不包含小数位。--如果未指定 max_size,文件将一直增长到磁盘变满为止。Max_size 是一个整数值。对于大于2147483647的值,使用更大的单位。--unlimited--指定文件将增长到磁盘充满。在SQL Server中,指定为不限制增长的日志文件的最大大小为2TB,而数据文件的最大大小为16TB。--filegrowth--指定文件的自动增量。文件的filegrowth设置不能超过max_size_number设置。将os_file_name指定为UNC路径时,不能指定filegrowth。--filegrowth不适用于filestream文件组。--growth_increment--每次需要新空间时为文件添加的空间量。--该值可以MB、KB、GB、TB 或百分比 (%)为单位指定。--如果未在数量后面指定MB、KB 或%,则默认值为MB。--如果指定%,则增量大小为发生增长时文件大小的指定百分比。 定的大小舍入为最接近的64KB的倍数,最小值为64KB。--值为0时表明自动增长被设置为关闭,不允许增加空间。--enable_broker--指定对指定的数据库启用Service Broker。 也就是说,启动了消息传递,--并且在sys.databases 目录视图中将is_broker_enabled设置为true。数据库保留现有的Service Broker标识符。--new_broker--在sys.databases和还原数据库中都创建一个新的service_broker_guid值,并通过清除结束所有会话端点。--Broker已启用,但未向远程会话端点发送消息。必须使用新标识符重新创建任何引用旧Service Broker标识符的路由。--error_broker_conversations--结束所有会话,并产生一个错误指出数据库已附加或还原。--Broker一直处于禁用状态直到此操作完成,然后再将其启用。数据库保留现有的Service Broker标识符。--restricted_user--对于attach,可以指定restricted_user选项。--restricted_user只允许db_owner固定数据库角色成员以及dbcreator和sysadmin固定服务器角色成员连接到数据库,--不过对连接数没有限制。无资格用户的尝试将被拒绝。--filestream--将包含filestream选项“目录名称”的数据库附加到SQL Server实例中将提示SQL Server验证Database_Directory名称是否唯一。--directory_name={ 'directory_name' | NULL }--适用于: SQL Server (11.x) 到 SQL Server --与Windows兼容的目录名称。此名称应在SQL Server实例的所有Database_Directory名称中唯一。--无论SQL Server排序规则设置如何,唯一性比较都不区分大小写。在此数据库中创建FileTable之前,应设置此选项。--仅在将containment设置为partial之后,才允许使用以下选项。如果将containment设置为none,将发生错误。--for attach_rebuild_log--指定通过附加一组现有的操作系统文件来创建数据库。该选项只限于读/写数据库。--必须有一个指定主文件的 <filespec> 项。如果缺少一个或多个事务日志文件,将重新生成日志文件。--attach_rebuild_log自动创建一个新的1MB的日志文件。此文件放置于默认的日志文件位置。--for attach_rebuild_log具有以下要求:完全关闭数据库。所有数据文件(MDF 和 NDF)都必须可用。--通常,FOR ATTACH_REBUILD_LOG 用于将具有大型日志的可读/写数据库复制到另一台服务器,--在这台服务器上,数据库副本频繁使用,或仅用于读操作,因而所需的日志空间少于原始数据库。--不能对数据库快照指定for attach_rebuild_log。

5.数据库备份

参考:

sp_addumpdevice (Transact-SQL) - SQL Server | Microsoft Docs

参考:

Sql Server数据库备份大全(Sql语句)_宇天_YT的博客-CSDN博客_sql数据备份语句

6.数据库还原

restore database SCT from disk='E:\SQLserver备份\DATA\11.bak'--SCT为数据库名称--disk='数据库备份路径'

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。