更改資料庫名稱
Ⅰ sql語句可以修改資料庫名稱嗎
sqlserver的話:
sp_renamedb
更改資料庫的名稱。
語法
sp_renamedb [ @dbname = ] ' old_name ' ,
[ @newname = ] ' new_name '
參數
[ @dbname = ] ' old_name '
是資料庫的當前名稱。old_name 為 sysname 類型,無默認值。
[ @newname = ] ' new_name '
是資料庫的新名稱。new_name 必須遵循標識符規則。new_name 為 sysname 類型,無默認值。
返回代碼值
0 (成功)或非零數字(失敗)
許可權
只有 sysadmin 和 dbcreator 固定伺服器角色的成員才能執行 sp_renamedb。
示例
下例將資料庫 accounting 改名為 financial。
EXEC sp_renamedb ' accounting ' , ' financial '
Ⅱ SQLServer如何完整的修改一個資料庫的名稱
資料庫為原名稱為DB_BEIJING,需要修改成DB_SHANGHAI
nzperfect
2012.12.19*/
--判斷是否存在同名的資料庫,以防止誤刪除USE
masterGOIF
EXISTS
(SELECT
name
FROM
sys.databases
WHERE
name
=
N'DB_BEIJING')BEGINRAISERROR('請注意:資料庫已存在!',15,1)RETURN--DROP
DATABASE
DB_BEIJINGENDGOUSE
masterGO--創建測試數庫
CREATE
DATABASE
[DB_BEIJING]ON
PRIMARY(NAME
=
N'DB_BEIJING',
FILENAME
=
N'X:\DATA\DB_BEIJING.mdf'
,
SIZE
=
3072KB
,
FILEGROWTH
=
1024KB)LOG
ON(NAME
=
N'DB_BEIJING_log',
FILENAME
=
N'W:\Log\DB_BEIJING_log.ldf'
,
SIZE
=
1024KB
,
FILEGROWTH
=
1024KB)GO
--以下為修改過程
--step
1
:
修改資料庫名稱USE
masterGOALTER
DATABASE
DB_BEIJING
SET
SINGLE_USER
WITH
ROLLBACK
IMMEDIATEGOEXEC
master..sp_renamedb
'DB_BEIJING','DB_SHANGHAI'GOALTER
DATABASE
DB_SHANGHAI
SET
MULTI_USERGO
--step
2
:
查看修改名稱後的資料庫邏輯名及物理文件名USE
masterGOSELECT
name
AS
[Logical
Name],
physical_name
AS
[DB
File
Path],type_desc
AS
[File
Type],
state_desc
AS
[State]
FROM
sys.master_files
WHERE
database_id
=
DB_ID(N'DB_SHANGHAI')GO/*Logical
Name
DB
File
Path
File
Type
State
DB_BEIJING
X:\DATA\DB_BEIJING.mdf
ROWS
ONLINE
DB_BEIJING_log
W:\Log\DB_BEIJING_log.ldf
LOG
ONLINE*/
--step
3
:
修改資料庫邏輯文件名稱USE
masterGOALTER
DATABASE
DB_SHANGHAI
SET
SINGLE_USER
WITH
ROLLBACK
IMMEDIATEGOALTER
DATABASE
DB_SHANGHAI
MODIFY
FILE
(NAME=N'DB_BEIJING',
NEWNAME=N'DB_SHANGHAI')GOALTER
DATABASE
DB_SHANGHAI
MODIFY
FILE
(NAME=N'DB_BEIJING_log',
NEWNAME=N'DB_SHANGHAI_log')GOALTER
DATABASE
DB_SHANGHAI
SET
MULTI_USERGO
--step
4
:
修改資料庫物理文件名稱之前先打開xp_cmdshell支持USE
masterGOsp_configure
'show
advanced
options',1GORECONFIGURE
WITH
OVERRIDEGOsp_configure
'xp_cmdshell',
1GORECONFIGURE
WITH
OVERRIDEGO
--step
5
:
重命名資料庫物理文件名稱
USE
[master]GOALTER
DATABASE
DB_SHANGHAI
SET
OFFLINE
WITH
ROLLBACK
IMMEDIATEGOEXEC
xp_cmdshell
'RENAME
X:\DATA\DB_BEIJING.mdf,
DB_SHANGHAI.mdf'GOEXEC
xp_cmdshell
'RENAME
W:\Log\DB_BEIJING_log.ldf,
DB_SHANGHAI_log.ldf'GO
--step
6
:
將資料庫邏輯名稱指向新的物理文件,並將資料庫online
USE
[master]GOALTER
DATABASE
DB_SHANGHAI
MODIFY
FILE
(NAME
=DB_SHANGHAI,
FILENAME
=
'X:\DATA\DB_SHANGHAI.mdf')GOALTER
DATABASE
DB_SHANGHAI
MODIFY
FILE
(NAME
=DB_SHANGHAI_log,
FILENAME
=
'W:\LOG\DB_SHANGHAI_log.ldf')GOALTER
DATABASE
DB_SHANGHAI
SET
ONLINE
--step
7
:
查看全部修改完成後的資料庫情況USE
masterGOSELECT
name
AS
[Logical
Name],
physical_name
AS
[DB
File
Path],type_desc
AS
[File
Type],
state_desc
AS
[State]
FROM
sys.master_files
WHERE
database_id
=
DB_ID(N'DB_SHANGHAI')GO/*Logical
Name
DB
File
Path
File
Type
State
DB_SHANGHAI
X:\DATA\DB_SHANGHAI.mdf
ROWS
ONLINE
Ⅲ 怎樣在mysql裡面修改資料庫名稱
用這個命令抄備份資料庫,然後創建新的資料庫create
databases
new_databases;
再上傳備份資料庫mysql
-u
username
-ppasswd
new_databases<D:/back.sql
ok,刪除舊的資料庫就好了
Ⅳ 如何完整的修改一個資料庫的名稱
/*
該腳本示例如何完整的修改一個資料庫的名稱.
資料庫為原名稱為DB_BEIJING,需要修改成DB_SHANGHAI
nzperfect 2012.12.19
*/
--判斷是否存在同名的資料庫,以防止誤刪除
USE master
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'DB_BEIJING')
BEGIN
RAISERROR('請注意:資料庫已存在!',15,1)
RETURN
--DROP DATABASE DB_BEIJING
END
GO
USE master
GO
--創建測試數庫
CREATE DATABASE [DB_BEIJING]
ON PRIMARY
(
NAME = N'DB_BEIJING',
FILENAME = N'X:\DATA\DB_BEIJING.mdf' ,
SIZE = 3072KB ,
FILEGROWTH = 1024KB
)
LOG ON
(
NAME = N'DB_BEIJING_log',
FILENAME = N'W:\Log\DB_BEIJING_log.ldf' ,
SIZE = 1024KB ,
FILEGROWTH = 1024KB
)
GO
--以下為修改過程
--step 1 : 修改資料庫名稱
USE master
GO
ALTER DATABASE DB_BEIJING SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
EXEC master..sp_renamedb 'DB_BEIJING','DB_SHANGHAI'
GO
ALTER DATABASE DB_SHANGHAI SET MULTI_USER
GO
--step 2 : 查看修改名稱後的資料庫邏輯名及物理文件名
USE master
GO
SELECT name AS [Logical Name], physical_name AS [DB File Path],type_desc AS [File Type],
state_desc AS [State] FROM sys.master_files
WHERE database_id = DB_ID(N'DB_SHANGHAI')
GO
/*
Logical Name DB File Path File Type State
DB_BEIJING X:\DATA\DB_BEIJING.mdf ROWS ONLINE
DB_BEIJING_log W:\Log\DB_BEIJING_log.ldf LOG ONLINE
*/
--step 3 : 修改資料庫邏輯文件名稱
USE master
GO
ALTER DATABASE DB_SHANGHAI SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME=N'DB_BEIJING', NEWNAME=N'DB_SHANGHAI')
GO
ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME=N'DB_BEIJING_log', NEWNAME=N'DB_SHANGHAI_log')
GO
ALTER DATABASE DB_SHANGHAI SET MULTI_USER
GO
--step 4 : 修改資料庫物理文件名稱之前先打開xp_cmdshell支持
USE master
GO
sp_configure 'show advanced options',1
GO
RECONFIGURE WITH OVERRIDE
GO
sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE WITH OVERRIDE
GO
--step 5 : 重命名資料庫物理文件名稱
USE [master]
GO
ALTER DATABASE DB_SHANGHAI SET OFFLINE WITH ROLLBACK IMMEDIATE
GO
EXEC xp_cmdshell 'RENAME "X:\DATA\DB_BEIJING.mdf", "DB_SHANGHAI.mdf"'
GO
EXEC xp_cmdshell 'RENAME "W:\Log\DB_BEIJING_log.ldf", "DB_SHANGHAI_log.ldf"'
GO
--step 6 : 將資料庫邏輯名稱指向新的物理文件,並將資料庫online
USE [master]
GO
ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME =DB_SHANGHAI, FILENAME = 'X:\DATA\DB_SHANGHAI.mdf')
GO
ALTER DATABASE DB_SHANGHAI MODIFY FILE (NAME =DB_SHANGHAI_log, FILENAME = 'W:\LOG\DB_SHANGHAI_log.ldf')
GO
ALTER DATABASE DB_SHANGHAI SET ONLINE
--step 7 : 查看全部修改完成後的資料庫情況
USE master
GO
SELECT name AS [Logical Name], physical_name AS [DB File Path],type_desc AS [File Type],
state_desc AS [State] FROM sys.master_files
WHERE database_id = DB_ID(N'DB_SHANGHAI')
GO
/*
Logical Name DB File Path File Type State
DB_SHANGHAI X:\DATA\DB_SHANGHAI.mdf ROWS ONLINE
DB_SHANGHAI_log W:\LOG\DB_SHANGHAI_log.ldf LOG ONLINE
*/
--step 8 : 關閉xp_cmdshell支持
USE master
GO
sp_configure 'xp_cmdshell', 0
GO
RECONFIGURE WITH OVERRIDE
GO
sp_configure 'show advanced options',0
GO
RECONFIGURE WITH OVERRIDE
GO
Ⅳ SQL Server資料庫裡面怎麼修改資料庫的名字
其實在修改資料庫名稱之前,如果有用戶連接到資料庫的話會造成資料庫重命名失敗,可以先執行
select spid
from master.dbo.sysprocesses
where dbid=db_id('OldDbName')
結果集中顯示的是當前連接到資料庫OldDbName的連接比如結果是7981當然,實際值應該不是這兩個然後執行kill 79kill 81關閉已建立的連接,之後再執行
EXEC sp_dboption 'OldDbName', 'Single User', 'TRUE'
EXEC sp_renamedb 'OldDbName', 'NewDbName'
EXEC sp_dboption 'NewDbName', 'Single User', 'FALSE'
上述語句最好都在master資料庫中執行。
另外也可以這樣:
先分離資料庫,然後附加的時候再修改就可以了
SQL Server不支持直接修改資料庫名稱
Ⅵ mysql 可以改資料庫的名字嗎
提供三種方法:
1. RENAME DATABASE db_name TO new_db_name
這個。。這個語法在mysql 5.1.7中被添加進來,到了5.1.23又去掉了。回
據說有可能丟失數據。答還是不要用的好。
2.如果所有表都是MyISAM類型的話,可以改文件夾的名字
關閉mysqld
把data目錄中的db_name目錄重命名為new_db_name
開啟mysqld
3.重命名所有的表
CREATE DATABASE new_db_name;
RENAME TABLE db_name.table1 TO new_db_name.table1,
db_name.table2 TO new_db_name.table2;
DROP DATABASE db_name;
Ⅶ 如何更改SQL資料庫名稱
在查詢分析器里執行
sp_rename '資料庫原來的名字','資料庫新名','database'
比如原來你的資料庫是db1 你想修改為db2則語句為
sp_rename 'db1','db2','database'
Ⅷ sql server中如何修改資料庫名稱
未能排它地鎖定資料庫以執行該操作,出現了這樣的錯誤!
說明有進程在使用著「學生」資料庫,
停止SQL Server服務,然後再啟動,(或者重啟windows),
這樣就可以使用前面幾位說的方法重命名操作了,
例如:
use master
go
exec sp_renamedb '學生','教師';
Ⅸ 我想修改mysql資料庫的名字,可以怎麼修改
1、方法一:重命名所有的表,代碼如下:
CREATE DATABASE new_db_name;
RENAME TABLE db_name.table1 TO new_db_name.table1,
db_name.table2 TO new_db_name.table2;
DROP DATABASE db_name;
Ⅹ 如何更改MySQL資料庫的資料庫名
修改名稱詳細步驟(因為不僅僅是上面那幾步)mysql> use dinghao;mysql> select * from t1;+——+———–+| id | name |+——+———–+| 1 | 劉德華 | +——+———–+1 row in set (0.00 sec)mysql> show create table t1;+——-+————————————————————————————————————————-+| Table | Create Table |+——-+————————————————————————————————————————-+| t1 | CREATE TABLE `t1` ( `id` int(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +——-+————————————————————————————————————————-+1 row in set (0.00 sec)mysql> flush tables;Query OK, 0 rows affected (0.00 sec)mysql> flush logs;Query OK, 0 rows affected (0.00 sec)mysql> show processlist; #這一步主要查看有沒有其他進程連接,要保證沒有其他程序操作資料庫。+—-+——+———–+———+———+——-+——-+——————+| Id | User | Host | db | Command | Time | State | Info |+—-+——+———–+———+———+——-+——-+——————+| 17 | root | localhost | dinghao | Query | 0 | NULL | show processlist | +—-+——+———–+———+———+——-+——-+——————+1 rows in set (0.00 sec)mysql> alter table t1 engine=MyISAM;Query OK, 1 row affected (0.01 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> exit[root@mysqludf var]# mv dinghao aaa;mysql> use aaa;Database changedmysql> alter table t1 engine=INNODB;Query OK, 1 row affected (0.00 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> select * from t1;+——+———–+| id | name |+——+———–+| 1 | 劉德華 | +——+———–+1 row in set (0.00 sec)注意,在改名之前必須現轉換存儲引擎,否則會報錯,你想換的這個名稱就換不成了,只能換另外一個名稱了。錯誤的方法就不演示了,光記住好的就行了。