由于一些网站是
使用
虚构主机.用sql-server导数据上去的话.
数据库的消费者默许是你登录的消费者,不是dbo,有时就和当地产生不
统一.
--
性能
注明:成批更改数据库全部者的对象
--作者:不详
--用法: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