关闭

SQL Server数据库的创建和文件的修改

发表于:2016-12-20 10:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Linux公社    来源:51Testing软件测试网采编

  三,修改数据库文件
  1,修改数据文件的逻辑文件名(Logical file name)
  MODIFY FILE ( NAME = ‘logical_file_name’, NEWNAME = ‘new_logical_name’ )
  示例,将数据文件fg_newdb1_1 的逻辑文件名修改 fg_newdb1_file1
  alter database newdb
  modify file
  (NAME ='fg_newdb1_1',newname='fg_newdb1_file1')
  2,修改数据文件的物理文件名
  MODIFY FILE ( NAME = logical_file_name, FILENAME = ' new_path/os_file_name ' )
  修改数据文件的物理文件名,能够将数据文件移动到不同的位置上,分四步实现:
  step1,在数据库中注册数据文件的新的物理文件名
  alter database newdb
  modify file
  (name='fg_newdb1_file1',filename='F:\MSSQLServer\fg_newdb1_file1.ndf');
  语句执行成功之后,数据库会显示:物理文件名已经在系统目录中修改
  The file "fg_newdb1_file1" has been modified in the system catalog. The new path will be used the next time the database is started.
  step2,使数据库离线
  use master
  go
  alter database newdb
  set offline
  with rollback immediate;
  在将数据库离线(脱机,take offline)时,如果数据中有Sleeping Session存在,或者有query正在执行,那么Take Offline操作会一直等待下去,直到没有任何query运行,使用 ROLLBACK IMMEDIATE  选项,能够立即回滚数据库中正在执行的所有事务,使Take Offline 操作迅速完成。
  step3,将数据文件移动到新的位置上
  以管理员权限运行move命令将文件移动到新的位置上,并重命名为新的物理文件名
  move D:\MSSQLServer\fg_newdb1_1.ndf F:\MSSQLServer\fg_newdb1_file1.ndf
  step4,使数据库联机
  use master
  go
  alter database newdb
  set online
  四,从数据库中移除数据文件
  在SQL Server中,不管是日志文件,还是数据文件,在删除之前,必须清空,只有空的文件才能从数据库中删除。
  1,从数据库中删除数据文件
  step1,清空数据文件
  USE [db_study]
  GO
  DBCC SHRINKFILE (N'db_study_file1' , EMPTYFILE)
  GO
  Step2, 从数据库中删除数据文件
  USE master;
  GO
  ALTER DATABASE db_study
  REMOVE FILE db_study_file1;
  GO
  2,从数据库中删除日志文件
  step1,清空日志文件
  USE [db_study]
  GO
  DBCC SHRINKFILE (N'db_study_log1' , EMPTYFILE)
  GO
  step2,从数据库中删除日志文件
  USE master;
  GO
  ALTER DATABASE db_study
  REMOVE FILE db_study_log1;
  GO
  3,从数据库中删除文件组
  USE master;
  GO
  ALTER DATABASE db_study
  REMOVE FILEGROUP fg_study1;
  GO
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号