Мне надо сменить одного владельца всех таблиц на другого, нашла в Интернете : | Код |
-- Объявим переменные declare @ObjName varchar(255), @Str varchar(255), @OldOwnerName varchar(255), @NewOwnerName varchar(255) -- Зададим имена старого и нового владельцев select @OldOwnerName='Старый владелец', @NewOwnerName='Новый владелец' -- Объявим курсор для прохождения по всем объектам старого владельца declare Crs_DelObj insensitive scroll cursor for select so.name from sysobjects so, sysusers su where so.uid = su.uid and su.name = @OldOwnerName and so.type in ('V', 'U', 'P') -- пойдем по курсору и будем менять владельцев open Crs_DelObj fetch first from Crs_DelObj into @ObjName while @@fetch_status<>-1 begin if @@fetch_status<>-2 begin select @Str=ltrim(rtrim(@OldOwnerName))+"."+ltrim(rtrim(@ObjName)) -- меняем владельца exec ("exec sp_changeobjectowner '"+@Str+"', '"+@NewOwnerName+"'") end fetch next from Crs_DelObj into @ObjName end go close Crs_DelObj go deallocate Crs_DelObj go -- Объявим переменные declare @ObjName varchar(255), @Str varchar(255), @OldOwnerName varchar(255), @NewOwnerName varchar(255) -- Зададим имена старого и нового владельцев select @OldOwnerName='Старый владелец', @NewOwnerName='Новый владелец' -- Объявим курсор для прохождения по всем объектам старого владельца declare Crs_DelObj insensitive scroll cursor for select so.name from sysobjects so, sysusers su where so.uid = su.uid and su.name = @OldOwnerName and so.type in ('V', 'U', 'P') -- пойдем по курсору и будем менять владельцев open Crs_DelObj fetch first from Crs_DelObj into @ObjName while @@fetch_status<>-1 begin if @@fetch_status<>-2 begin select @Str=ltrim(rtrim(@OldOwnerName))+"."+ltrim(rtrim(@ObjName)) -- меняем владельца exec ("exec sp_changeobjectowner '"+@Str+"', '"+@NewOwnerName+"'") end fetch next from Crs_DelObj into @ObjName end go close Crs_DelObj go deallocate Crs_DelObj go
|
Но когда пробую, получаю следующие ошибки: | Код | Server: Msg 170, Level 15, State 1, Line 23 Line 23: Incorrect syntax near 'exec sp_changeobjectowner ''. Server: Msg 16916, Level 16, State 1, Line 1 A cursor with the name 'Crs_DelObj' does not exist. Server: Msg 16916, Level 16, State 1, Line 1 A cursor with the name 'Crs_DelObj' does not exist.
|
Помогите!!!, я в этом дуб-дубом  , зарвнее спасибо!
|