Имя: Пароль:
1C
1С v8
Как перебрать в цикле базы sql и сменить владельца
0 Barmalei
 
03.02.14
17:55
Есть скажем 200 баз sql, после восстановления бекапа у баз сменился владелец.
  
Вот пример как меняю у одной конкретной базы.
USE base1
go
sp_changedbowner @loginame = "1c_owner",  @map = remap_alias_flag
go

Хотелось бы этот код вставить в цикл и менять текущую базу.
1 ДенисЧ
 
03.02.14
17:59
declare cur cursor for select dbname from sys.databases
fetch next into @dbname
while @@fetchstatus = 0
begin
alter authorization....
fetch next into @dbname
end



что-то вроде такого
2 МихаилМ
 
03.02.14
17:59
3 Господин ПЖ
 
03.02.14
18:01
>Есть скажем 200 баз sql, после восстановления бекапа у баз сменился владелец

восстановление кого? сервер упал?
4 Barmalei
 
03.02.14
18:02
счас счас погодите, попробую ))
(1)(2)  спасибо большое
5 Barmalei
 
03.02.14
18:02
(3) диск упал у админа.. на пол )
6 Господин ПЖ
 
03.02.14
18:06
master тоже бэкапить надо... и юзеров восстанавливать с нее
7 Barmalei
 
03.02.14
20:15
с курсором тоже прокатило, на всякий случай может кому и такой способ пригодится. (не работает на открытых базах или сингл юзер)

EXEC sys.sp_MSforeachdb 'IF (SELECT owner_sid FROM sys.databases WHERE name = ''?'') <> 1 ALTER AUTHORIZATION ON DATABASE::? TO [1c_owner]'
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.