当前位置:必发365电子游戏 > Web前端 > SQL查询与修正数据库逻辑文件名,2.数据库名改善后
SQL查询与修正数据库逻辑文件名,2.数据库名改善后
2019-12-19

汇总篇:

逻辑文件名是怎么着

某系统规划的不是很客观,库非常多,图形化操作分离都得搞半天,各样改名也就更浪费时间了,于是引进了指令~(SQLServer现在早已在Linux里面跑了,大家也得跟上偶然)

你用的次第连接的时候使用的是数据库名,然后您在您的数据库右击属性的时候,左上角单击"文件",能够看出,数据库名和逻辑文件名是不均等的,你能够看本人的数据库的路线下的数据库文件

1.数据库名改革前

例,SQL查询与改良数据库逻辑文件名,移动数据仓库储存款和储蓄路线示例 .

alter database Test modify name=NewTest or exec sp_renamedb 'Test','NewTest'

 代码如下 复制代码

-- Author : htl258(Tony)

-- Date   : 2010-06-26 21:51:30

-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)

--          Jul  9 2008 14:43:34

--          Copyright (c) 1988-2008 Microsoft Corporation

--          Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)

-- Blog   : (转发保留此消息卡塔尔(قطر‎

必发365电子游戏 1

-- Subject: SQL查询与校勘数据库逻辑文件名,移动数据仓库储存款和储蓄路线示例

USE mydb

GO

--1.询问当前数据库的逻辑文件名
SELECT FILE_NAME(1) AS 'File Name 1', FILE_NAME(2) AS 'File Name 2';

--或透过以下语句询问:
--SELECT name FROM sys.database_files

/*

File Name 1         File Name 2


mydb                mydb_log

 

(1 行受影响卡塔尔(英语:State of Qatar)

*/

--2.改换数据文件或日志文件的逻辑名称
ALTER DATABASE [必发365电子游戏,mydb]

MODIFY FILE ( NAME = mydb, NEWNAME = new_mydb )

ALTER DATABASE [mydb]

MODIFY FILE ( NAME = mydb_log, NEWNAME = new_mydb_log )

 

--查询更正后的称号:
SELECT FILE_NAME(1) AS 'File Name 1', FILE_NAME(2) AS 'File Name 2';

/*

File Name 1         File Name 2


new_mydb            new_mydb_log

 

(1 行受影响卡塔尔(قطر‎

*/

 

--3.若要将数据文件或日志文件移至新岗位,先OFFLINE把公文MOVE到对应的职位,然后再ONLINE

--  详细参谋以下步骤
--3.1 查询数据文件或日志文件当前寄存在路线:
SELECT physical_name FROM sys.database_files

/*

physical_name


D:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/DATA/mydb.mdf

D:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/DATA/mydb_log.ldf

 

(2 行受影响卡塔尔国

*/

--3.2 移动路线
USE [master]

GO

--3.2.1 关闭全体进度
DECLARE @str VARCHAR(500);

SET @str = '';

SELECT @str = @str + 'KILL '+RTRIM(spid)+';'+CHAR(13)+CHAR(10)

FROM master.dbo.sysprocesses

WHERE dbid=DB_ID('mydb');

EXEC(@str);

GO

--3.2.2 设置数据库脱机
ALTER DATABASE [mydb] SET  OFFLINE

GO

--3.2.3 移动数据文件与日志文件(为承保数量安全,提出改move为copy,复制作而成功后再删除源文件卡塔尔(英语:State of Qatar)

EXEC master..xp_cmdshell 'move "D:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/DATA/mydb.mdf" "E:/DBTEST"',NO_OUTPUT

EXEC master..xp_cmdshell 'move "D:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/DATA/mydb_log.LDF" "E:/DBTEST"',NO_OUTPUT

GO

--3.2.4 设置新的蕴藏路线
ALTER DATABASE [mydb] MODIFY FILE (NAME = new_mydb,FILENAME = 'E:/DBTEST/mydb.mdf')

ALTER DATABASE [mydb] MODIFY FILE (NAME = new_mydb_log,FILENAME = 'E:/DBTEST/mydb_log.ldf')

GO

--3.2.5 设置数据库联机
ALTER DATABASE [mydb]SQL查询与修正数据库逻辑文件名,2.数据库名改善后。 SET ONLINE

GO

--3.2.6 查询新的路子
USE mydb

GO

SELECT physical_name FROM sys.database_files

/*

physical_name


E:/DBTEST/mydb.mdf

E:/DBTEST/mydb_log.ldf

 

(2 行受影响卡塔尔国

*/  

更加多详细内容请查看:

2.数据库名修改后

必发365电子游戏 2

3.物理文件名和逻辑名并未生成

必发365电子游戏 3

4.逻辑名修正前后

alter database NewTest modify file(name=N'Test', newname=N'NetTest')

必发365电子游戏 4

5.逻辑名发生转移物理文件名不改变

必发365电子游戏 5

6.物理改名很三种(笔者这边的庐山面目目正是分开后改过,因为占用情况是迫于改变的)

实则并未什么新的sql,都以组合版的

exec xp_cmdshell 'rename E:SQLTest.mdf NewTest.mdf'

必发365电子游戏 6

效果:

必发365电子游戏 7

SQL:

use master
go
--1.分离
exec sp_detach_db NewTest
go

--2.改名(这一步可以换成手动改名字)
exec sp_configure 'show advanced options',1 --显示高级选项
reconfigure with override--重新配置
    exec sp_configure 'xp_cmdshell',1 --1代表允许,0代表阻止
    reconfigure with override
        exec xp_cmdshell 'rename E:SQLTest.mdf NewTest.mdf'
        go
        exec xp_cmdshell 'rename E:SQLTest_log.ldf NewTest_log.ldf'
        go
    exec sp_configure 'xp_cmdshell',0
    reconfigure with override
exec sp_configure 'show advanced options',0
reconfigure with override

--3.附加
exec sp_attach_db NewTest,N'E:SQLNewTest.mdf',N'E:SQLNewTest_log.ldf'