批量数据处理

 


  
DECLARE @Database VARCHAR(255)   
DECLARE @Table VARCHAR(255)  
DECLARE @cmd NVARCHAR(500)  
DECLARE @fillfactor INT 

SET @fillfactor = 90 

DECLARE DatabaseCursor CURSOR FOR  
SELECT name FROM master.dbo.sysdatabases   
WHERE name NOT IN ('master','msdb','tempdb','model','distribution','ReportServer','ReportServerTempDB') 
and status=65536  
ORDER BY 1  

OPEN DatabaseCursor  

FETCH NEXT FROM DatabaseCursor INTO @Database  
WHILE @@FETCH_STATUS = 0  
BEGIN  

set @cmd= 'use ['+@Database+']'
 

if not exists(select DbRole = g.name, MemberName = u.name, MemberSID = u.sid
from sys.database_principals u, sys.database_principals g, sys.database_role_members m
where g.principal_id = m.role_principal_id
and u.principal_id = m.member_principal_id
 and g.name='db_datareader' and u.name='YH_SA_ALL') 
 begin
 
 print @cmd
 print 'create user YH_SA_ALL for login YH_SA_IPOALL with default_schema=dbo'
 print 'exec sp_addrolemember ''db_datareader'', ''YH_SA_ALL'' '

  
 end

   FETCH NEXT FROM DatabaseCursor INTO @Database  
END  
CLOSE DatabaseCursor   
DEALLOCATE DatabaseCursor
 
 
 
posted on 2020-09-18 14:28  西湖浪子  阅读(103)  评论(0)    收藏  举报