不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
SQL Server数据库重命名
编辑:dnawo 日期:2008-12-25
在企业管理器中我们无法对数据库进行重命名,下边介绍两种方法来实现对SQL Server数据库重命名。
方法一:使用系统存储过程sp_renamedb
在使用sp_renamedb对数据库进行重命名前必须确保所有使用数据库的连接都已关闭,打开"所有任务→分离数据库",点击清除按钮即可关闭数据库所有连接,然后在查询分析器中执行如下语句即可完成数据库重命名:
方法二:新建存储过程对数据库重命名
本存储过程可自动关闭数据库所有连接,然后再调用sp_renamedb进行重命名,代码如下:
其他说明
1.如果提示:"未能排它地锁定数据库以执行该操作",应确保关闭了数据库所有连接再执行sp_renamedb;
2.如果提示:"不能用 KILL 来取消您自己的进程",则将查询分析器中的当前数据库设置为非重命名数据库再执行sp_renamedbnew;
方法一:使用系统存储过程sp_renamedb
在使用sp_renamedb对数据库进行重命名前必须确保所有使用数据库的连接都已关闭,打开"所有任务→分离数据库",点击清除按钮即可关闭数据库所有连接,然后在查询分析器中执行如下语句即可完成数据库重命名:
复制内容到剪贴板
程序代码

exec sp_renamedb 'olddbname','newdbname'
方法二:新建存储过程对数据库重命名
本存储过程可自动关闭数据库所有连接,然后再调用sp_renamedb进行重命名,代码如下:
复制内容到剪贴板
程序代码

/*
数据库重命名
*/
Create procedure sp_renamedbnew
(
@dbname varchar(30),
@newdbname varchar(30)
)
as
/* 清除数据库的所有连接 */
declare @spid int
declare @sqlforclear nvarchar(100)
declare curid cursor forward_only read_only for (select spid from master.dbo.sysprocesses where db_name(dbid)=@dbname)
open curid
fetch next from curid into @spid
while @@fetch_status = 0
begin
set @sqlforclear = N'kill ' + cast(@spid as nvarchar(10))
exec sp_executesql @sqlforclear
--if @@error = 0 print 'clear:' + cast(@spid as nvarchar(10))
fetch next from curid into @spid
end
close curid
deallocate curid
/* 重命名 */
exec sp_renamedb @dbname,@newdbname
GO
数据库重命名
*/
Create procedure sp_renamedbnew
(
@dbname varchar(30),
@newdbname varchar(30)
)
as
/* 清除数据库的所有连接 */
declare @spid int
declare @sqlforclear nvarchar(100)
declare curid cursor forward_only read_only for (select spid from master.dbo.sysprocesses where db_name(dbid)=@dbname)
open curid
fetch next from curid into @spid
while @@fetch_status = 0
begin
set @sqlforclear = N'kill ' + cast(@spid as nvarchar(10))
exec sp_executesql @sqlforclear
--if @@error = 0 print 'clear:' + cast(@spid as nvarchar(10))
fetch next from curid into @spid
end
close curid
deallocate curid
/* 重命名 */
exec sp_renamedb @dbname,@newdbname
GO
其他说明
1.如果提示:"未能排它地锁定数据库以执行该操作",应确保关闭了数据库所有连接再执行sp_renamedb;
2.如果提示:"不能用 KILL 来取消您自己的进程",则将查询分析器中的当前数据库设置为非重命名数据库再执行sp_renamedbnew;
评论: 0 | 引用: 0 | 查看次数: 6313
发表评论
请登录后再发表评论!