SQL2000 修改表所有者的方法

 

单个修改所有者sql语句如下:

查询分析器输入:EXEC sp_changeobjectowner 'user.table', 'dbo'

user.table的意思为:所有者.表名,比如oblog.oblog_user,以前的语句表示将table这张表的所有者由

user改成dbo

批量修改所有者语句如下:

查询分析器输入:exec sp_msforeachtable 'sp_changeobjectowner ''?'', ''dbo'''

即可把当面表的所有所有者换成dbo

第二种方法:

更改数据库所有者并不能影响已经创建的表的所有者,你需要使用sp_changeobjectower来改变对象的所有者,并且对象的所有者sa对应的是dbo

以下语句是利用游标,读取mydb帐户拥有的所有对象,并将其所有者更改为sa
另外如果之前本地不存在mydb帐户,可能会导致孤立帐户的出现,你先试试能不能成功吧,如果不行,再提供给你解决方法。

declare cur cursor for
select name
from sysobjects
where uid=user_id('mydb')

declare @name sysname
declare @sqlstr varchar(5000)

open cur
fetch next from cur
into @name

while @@fetch_status=0
begin
set @sqlstr='exec sp_changeobjectowner ''mydb.'+@name+''',''dbo'''
exec (@sqlstr)
fetch next from cur
into @name
end
close cur
deallocate cur

posted @   遥望星空  阅读(422)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示