对SQL Server表的所属用户进行更改的2方案


  本文标签:SQL Server表

  此文章主要讲述的是正确对SQL Server表的所属用户进行更改的实际操作方法,在实际操作中我们大家可能会遇到这样的情况,即碰到把一个SQL Server数据库备份还原到另外一台机器结果导致所有的表都不能打开了,原因是建表的时候采用了当时的数据库用户……

  更改SQL Server表的所属用户的方法之更改某个表

  1. exec sp_changeobjectowner tablename,dbo 

  更改SQL Server表的所属用户的方法之存储更改全部表

  1. CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch  
  2. @OldOwner as NVARCHAR(128),  
  3. @NewOwner as NVARCHAR(128)  
  4. AS  
  5. DECLARE @Name as NVARCHAR(128)  
  6. DECLARE @Owner as NVARCHAR(128)  
  7. DECLARE @OwnerName as NVARCHAR(128)  
  8. DECLARE curObject CURSOR FOR   
  9. select Name = name,  
  10. Owner = user_name(uid)  
  11. from sysobjects  
  12. where user_name(uid)=@OldOwner  
  13. order by name  
  14. OPEN curObject  
  15. FETCH NEXT FROM curObject INTO @Name, @Owner  
  16. WHILE(@@FETCH_STATUS=0)  
  17. BEGIN   
  18. if @Owner=@OldOwner   
  19. begin  
  20. set @OwnerName = @OldOwner + . + rtrim(@Name)  
  21. exec sp_changeobjectowner @OwnerName, @NewOwner  
  22. end  
  23. -- select @name,@NewOwner,@OldOwner  
  24. FETCH NEXT FROM curObject INTO @Name, @Owner  
  25. END  
  26. close curObject  
  27. deallocate curObject  
  28. GO  

  

  

  以上的相关内容就是对更改SQL Server表的所属用户的方法的介绍,望你能有所收获  。