時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
SQL查詢與修改數(shù)據(jù)庫邏輯文件名,移動(dòng)數(shù)據(jù)庫存儲(chǔ)路徑示例 收藏
----------------------------------------------------------------------------------
-- Subject: SQL查詢與修改數(shù)據(jù)庫邏輯文件名,移動(dòng)數(shù)據(jù)庫存儲(chǔ)路徑示例
----------------------------------------------------------------------------------
USE mydb
GO
--1.查詢當(dāng)前數(shù)據(jù)庫的邏輯文件名
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 行受影響)
*/
--2.修改數(shù)據(jù)文件或日志文件的邏輯名稱
ALTER DATABASE [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.若要將數(shù)據(jù)文件或日志文件移至新位置,先OFFLINE把文件MOVE到相應(yīng)的位置,然后再ONLINE
--? 詳細(xì)參考以下步驟
--3.1 查詢數(shù)據(jù)文件或日志文件當(dāng)前存放路徑:
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 移動(dòng)路徑
USE [master]
GO
--3.2.1 關(guān)閉所有進(jìn)程
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 設(shè)置數(shù)據(jù)庫脫機(jī)
ALTER DATABASE [mydb] SET? OFFLINE
GO
--3.2.3 移動(dòng)數(shù)據(jù)文件與日志文件(為確保數(shù)據(jù)安全,建議改move為copy,復(fù)制成功后再刪除源文件)
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 設(shè)置新的存儲(chǔ)路徑
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 設(shè)置數(shù)據(jù)庫聯(lián)機(jī)
ALTER DATABASE [mydb] 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 行受影響)
*/
如果報(bào)"SQL Server 阻止了對(duì)組件 'xp_cmdshell' 的 過程'sys.xp_cmdshell' 的訪問
解決方法:執(zhí)行下面的語句
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
執(zhí)行完之后就不會(huì)再報(bào)SQL Server 阻止了對(duì)組件 'xp_cmdshell' 的 過程'sys.xp_cmdshell' 的訪問的錯(cuò)誤了最新回復(fù)
關(guān)鍵詞標(biāo)簽:數(shù)據(jù)庫
相關(guān)閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法