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数据表和存储过程的所有者所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)