成批更改数据库对象的所有者

添加人:admin三级(1315分)   添加时间:2007-12-27    阅读次数:1379  收藏此教程
 1 --功能说明:成批更改数据库对象的所有者
 2 --作者:不详
 3 --用法:exec ChangeObjectOwner 'vs2005','dbo'
 4 --即可将所有vs2005所有者的对象改为dbo所有
 5 --运行成功后将提示:"注意: 更改对象名的任一部分都可能破坏脚本和存储过程。"
 6 Create proc ChangeObjectOwner
 7 @OldOwner as NVARCHAR(128),--参数原所有者
 8 @NewOwner as NVARCHAR(128)--参数新所有者
 9 AS
10 DECLARE @Name as NVARCHAR(128)
11 DECLARE @Owner as NVARCHAR(128)
12 DECLARE @OwnerName as NVARCHAR(128)
13 
14 DECLARE curObject CURSOR FOR
15 select 'Name' = name,
16 'Owner' = user_name(uid)
17 from sysobjects
18 where user_name(uid)=@OldOwner
19 order by name
20 
21 OPEN curObject
22 FETCH NEXT FROM curObject INTO @Name, @Owner
23 WHILE(@@FETCH_STATUS=0)
24 BEGIN
25 if @Owner=@OldOwner
26 begin
27 set @OwnerName = @OldOwner + '.' + rtrim(@Name)
28 exec sp_changeobjectowner @OwnerName, @NewOwner
29 end
30 
31 FETCH NEXT FROM curObject INTO @Name, @Owner
32 END
33 
34 close curObject
35 deallocate curObject
36 GO 
37 
38 
39 
1页 第1上一页1下一页
相关的教程: 所有者 数据库对象
收藏此教程

当前平均分: 0.0(0 次打分)

-5-4-3-2-1012345
评论主题
您的大名
您的评论
验证码 点击换一个验证码
知识库搜索: