Как перебрать в цикле базы 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]'
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.