批量数据处理
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
浙公网安备 33010602011771号