Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)归海一刀published in(发表于) 2014/2/3 6:34:22 Mssql批量修改权限_[SQL Server教程]
2 如果所有表都存在此问题,这是就要编写存储过程实现批量修改了 IF OBJECT_ID('ChangeAll') IS NOT NULL Drop PROC ChangeAll GO
Create PROCEDURE ChangeAll ( @old sysname, @new sysname ) AS DECLARE @objname sysname
SET NOCOUNT ON
IF USER_ID(@old) IS NULL BEGIN RAISERROR ('The @old passed does not exist in the database', 16, 1) RETURN END IF USER_ID(@new) IS NULL BEGIN RAISERROR ('The @new passed does not exist in the database', 16, 1) RETURN END
DECLARE owner_cursor CURSOR FOR
Select name FROM sysobjects Where uid = USER_ID(@old) OPEN owner_cursor FETCH NEXT FROM owner_cursor INTO @objname WHILE (@@fetch_status <> -1) BEGIN SET @objname = @old + '.' + @objname EXEC sp_changeobjectowner @objname, @new FETCH NEXT FROM owner_cursor INTO @objname END
CLOSE owner_cursor DEALLOCATE owner_cursorz GO
EXEC ChangeAll @old = 'mooip', @new = 'dbo'
这样就完成了批量修改权限的工作
来源:网络
赞