sql server 2000 restore

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
val
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 14.11.2002 (Чт) 1:14

sql server 2000 restore

Сообщение val » 23.07.2005 (Сб) 6:46

Когда делаю restore базы с файлами .mdf и .ldf, tables и stored procedures создаются с owner name aspadmin

например:

Код: Выделить всё
CREATE PROCEDURE [b]aspadmin[/b].Sp_Years_select
AS
       SET NOCOUNT ON;
       SELECT yearId, yearVal FROM YEARS_TBL
GO


Что надо сделать чтобы когда из кода вызываешь stored proc. не использовать owner name, т.е aspadmin?
А то ругается что stored proc doesn't exist.

Заранее спасибо
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: sql server 2000 restore

Сообщение Andrey Fedorov » 25.07.2005 (Пн) 8:44

val писал(а):Что надо сделать чтобы когда из кода вызываешь stored proc. не использовать owner name, т.е aspadmin?
А то ругается что stored proc doesn't exist.


Сделать примерно так:

Код: Выделить всё
EXECUTE sp_changeobjectowner 'aspadmin.Sp_Years_select', 'dbo'
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

val
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 14.11.2002 (Чт) 1:14

Сообщение val » 25.07.2005 (Пн) 16:08

Андрей,
Спасибо за ответ.

Будет ли это единственным выходом? или можно как-то создать юзера и наделить его правами чтобы он мог вызывать stored procs. с aspadmin впереди имени и без него? (Скорее всего это не правильно иметь в базе objects созданные разными owners. Просто интересно...)

У меня в базе около 400 objects(tables and stored procs), так что менять руками было бы очень утомительно. Вот нарыл script на случай если кому то надо

Код: Выделить всё
SELECT 'EXEC(''sp_changeobjectowner @objname = ''''' + ltrim(u.name) + '.' +
ltrim(s.name) + '''''' + ', @newowner = dbo'')'
FROM sysobjects s, sysusers u
WHERE s.uid = u.uid AND u.name <> 'dbo'AND xtype in ('V', 'P', 'U')
AND u.name not like 'INFORMATION%'
order by s.name
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 1

    TopList