前往顾页
以后地位: 主页 > 收集编程 > .Net实例教程 >

变动sql server数据库所有者的工具体例详解

时候:2010-08-12 23:06来源:知行网www.zhixing123.cn 编辑:麦田守望者

--服从申明:成批变动数据库所有者的工具

--作者:不详

--用法:exec ChangeObjectOwner 'nmkspro','dbo'

--便可将所有nmkspro所有者的工具改成dbo所有

--运行成功后将提示:"重视: 变动工具名的任一部分都可能粉碎脚本和存储过程。"

Create PROCEDURE dbo.ChangeObjectOwner

@OldOwner as NVARCHAR(128),--参数原所有者

@NewOwner as NVARCHAR(128)--参数新所有者

AS

DECLARE @Name as NVARCHAR(128)

DECLARE @Owner as NVARCHAR(128)

DECLARE @OwnerName as NVARCHAR(128)

DECLARE curObject CURSOR FOR

select 'Name' = name,

'Owner' = user_name(uid)

from sysobjects

where user_name(uid)=@OldOwner

order by name

OPEN curObject

FETCH NEXT FROM curObject INTO @Name, @Owner

WHILE(@@FETCH_STATUS=0)

BEGIN

if @Owner=@OldOwner

begin

set @OwnerName = @OldOwner + '.' + rtrim(@Name)

exec sp_changeobjectowner @OwnerName, @NewOwner

end

FETCH NEXT FROM curObject INTO @Name, @Owner

END

close curObject

deallocate curObject

GO

批量点窜:

法度代码

EXEC sp_MSforeachtable 'exec sp_changeobjectowner ''?'',''dbo'' '

单个点窜:

法度代码

exec sp_changeobjectowner '要改的表名','dbo'

体例一:直接点击该表-》设想-》属性-》变动下面的所有者。该体例针对表少的环境下。

体例二:操纵脚本直接履行,用体系帐号或超户登岸到该数据库,然后履行下面语句:

法度代码

sp_configure 'allow updates','1'

go

reconfigure with override

go

update sysobjects set uid=1 where uid<>1 --按照前提可以肆意点窜,在多用户之间切换。

go

sp_configure 'allow updates','0'

go

reconfigure with override
 

顶一下
(0)
0%
踩一下
(0)
0%
------分开线----------------------------
标签(Tag):数据库 SQLServer2005 SQL Server2003 SQL Server2000
------分开线----------------------------
颁发评论
请自发遵循互联网相关的政策法规,严禁公布色情、暴力、革命的谈吐。
评价:
神色:
考证码:点击我更换图片
猜你感兴趣