欢迎光临
我们一直在努力

如何修改数据库表或存储过程的所有者_数据库技巧

建站超值云服务器,限时71元/月

use dbname


sp_changedbowner new_user
更改当前数据库的所有者。



–批量修改数据库对象的所有者


新建一个存储过程:changename
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[changename]) and OBJECTPROPERTY(id, NIsProcedure) = 1)
drop procedure [dbo].[changename]
GO


SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO


Create PROCEDURE dbo.changename
@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
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


以SA登陆查询分析器 ,选中你要的数据库
执行存储过程
执行exec Changename 原所有者,dbo
或exec Changename dbo,数据库所有者



修改MS SQL表用户属性的命令 
 
可以用exec sp_changeobjectowner dataname.数据表,dbo 把表或存储过程中的所有者都改成dbo

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 如何修改数据库表或存储过程的所有者_数据库技巧
分享到: 更多 (0)