加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

更改数据库中表的所属用户的两个方法

发布时间:2020-12-12 02:24:13 所属栏目:MySql教程 来源:网络整理
导读:大家可能会经常碰到一个数据库备份还原到另外一台机器结果导致所有的表都不能打开了,原因是建表的时候采用了当时的数据库用户…… --更改某个表 exec sp_changeobjectowner 'tablename','dbo' --存储更改全部表 CREATE PROCEDURE dbo.User_ChangeObjectOwne


大家可能会经常碰到一个数据库备份还原到另外一台机器结果导致所有的表都不能打开了,原因是建表的时候采用了当时的数据库用户……


--更改某个表
exec sp_changeobjectowner 'tablename','dbo'


--存储更改全部表
CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch
?@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
-- select @name,@NewOwner,@OldOwner

?FETCH NEXT FROM curObject INTO @Name,@Owner
END

close curObject
deallocate curObject


GO

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读