设为首页 加入收藏

TOP

SQL还原数据库后孤立用户问题处理(二)
2014-11-24 01:38:54 来源: 作者: 【 】 浏览:15
Tags:SQL 还原 数据库 孤立 用户 问题 处理
USE [master] www.2cto.com
GO
EXEC dbo.sp_dbcmptlevel @dbname='数据库名', @new_cmptlevel=90
GO
或是选责你还原的数据库,点右键,选属性->选项->兼容级别,选择sqlserver2005(90) 然后确定,
这时,你在该数据库下展开“数据库关系图”节点时会有个提示,"此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”即可。
2、通过以上的方法操作,如果问题依然存在的话,按下列方法继续
选择你的数据库,然后选择"安全性"->"用户",选择dbo,打开属性页,如登录名为空的话,新建查询,然后
use [你的数据库名]
EXEC sp_changedbowner 'sa'
执行成功后,你再选择"数据库关系图"节点,时提示 “此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”即可。 就可以看到原先建的关系图了。
----------------------------------------------------------------------------------------------------------------
从服务器上作导入导出至本地机上,数据库中的表都在,可是表名前段的架构身份不是“dbo”了,而是服务器上数据库的“库名”。这样架构身份不同了,程序运行就出问题了。试过单个修改表,在sql2005的属性窗口可以更改架构者,可是N多表哪儿能手动改得过来呀!还请高手指点批量更改的方法。在此谢过。
SQL Server2005可以使用系统存储过程sp_changeobjectowner更改数据库对象的所有者。
sp_changeobjectowner '对象名(包括架构名)','新架构名'
批量修改请用: www.2cto.com
方法一:使用游标
declare @name sysname
declare csr1 cursor
for
select TABLE_NAME from INFORMATION_SCHEMA.TABLES
open csr1
FETCH NEXT FROM csr1 INTO @name
while (@@FETCH_STATUS=0)
BEGIN
SET @name='原架构名.'+@name
EXEC SP_ChangeObjectOwner @name, '新架构名'
fetch next from csr1 into @name
END
CLOSE csr1
DEALLOCATE csr1
方法二:使用系统存储过程sp_MSforeachtable
EXEC sp_MSforeachtable @command1="EXEC SP_ChangeObjectOwner ' ','新架构名'"
----------------------------------------------------------------------------------------------------------------
在sql server 2005数据库中更改数据架构
在数据库testDB中存在架构A及用户A,现将testDB数据库所属的用户由A改为B,同时删除用户A;架构也由A改为B,删除架构A,操作如下: www.2cto.com
1、创建用户B,再创建架构B;
2、将架构A的权限赋给用户B,取消用户A拥有架构A的权限,删除用户A;
3、将数据库的所有属于架构A的对象改为架构B,代码如下:
ALTER SCHEMA [新架构名] TRANSFER 旧架构名.[数据库中的对象表或视图或存储过程]
ALTER SCHEMA [B] TRANSFER A.[对象1]
ALTER SCHEMA [B] TRANSFER A.[对象2]
ALTER SCHEMA [B] TRANSFER A.[对象n]
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据库对象――视图――轻松走进.. 下一篇SQL Server 备份和还原全攻略

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: