| 【C#】如何更改SQLServer数据库所有者
					当前位置:点晴教程→知识管理交流
					
					→『 技术文档交流 』
					
				 
 下面的操作存在风险,建议做好数据库备份。 1、单个修改 exec sp_changeobjectowner '[所有者].[对象名]', 'dbo' 例子:  exec sp_changeobjectowner '[test].[dnt_users]', 'dbo' 执行后,数据库中dnt_users表的所有者从test变为dbo。 2、批量修改 2.1 先在查询分析器中执行下面的sql语句,建立名为changename存储过程。 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 2.2 执行存储过程changename exec changename '原所有者名','新所有者名' 例如: exec changename 'test','dbo' 则当前数据库中所有对象所有者从 test 变为 dbo。 3、相关教程: 该文章在 2021/6/5 11:45:58 编辑过 | 关键字查询 相关文章 正在查询... |