修改SQL数据表和存储过程的所有者

修改SQL数据表和存储过程的所有者,第1张

概述sql server 批量修改表和存储过程所有者。 批量修改表的所有者:EXEC sp_MSforeachtable 'exec sp_changeobjectowner ''?'',''dbo'' ' 单个修改表所有者: exec sp_changeobjectowner '要改的表名','dbo' 批量修改存储过程的存储过程:CREATE PROCEDURE ChangeProcOwner @OldOwner as NV…

sql server 批量修改表和存储过程的所有者。
批量修改表的所有者:

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

单个修改表所有者:

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

批量修改存储过程的存储过程: 

CREATE PROCEDURE ChangeProcOwner
@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 and xtype='p'
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 ChangeProcOwner 'xx','dbo'

或者

exec ChangeProcOwner '?','dbo'

总结

以上是内存溢出为你收集整理的修改SQL数据表和存储过程的所有者全部内容,希望文章能够帮你解决修改SQL数据表和存储过程的所有者所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1150618.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存