Прежде всего я восстановил базу данных с другого сервера, и теперь все хранимые процедуры называются как [azamsharp].[usp_getlatestposts]. Я думаю, что [azamsharp] — это префикс, поскольку это был пользователь на исходном сервере.
Теперь на моей локальной машине это не запускается. Я не хочу префикс [azamsharp] со всеми хранимыми процедурами.
Кроме того, когда я нажимаю правой кнопкой мыши на Sproc, я даже не вижу опцию свойств. Я использую SQL Server 2005 на Windows 7.
ОБНОВЛЯТЬ:
Когда я запустил хранимую процедуру orphan users, она показала двух пользователей "azamsharp" и "dbo1". Я исправил пользователя "azamsharp", но "dbo1" не исправляется. Когда я запускаю следующий скрипт:
exec sp_change_users_login 'update_one', 'dbo1', 'dbo1'
Я получаю следующую ошибку:
Сообщение 15291, уровень 16, состояние 1, процедура sp_change_users_login, строка 131 Завершение процедуры. Имя входа 'dbo1' отсутствует или недействительно.
решение1
Восстановление, выполненное через резервное копирование/восстановление, никогда не переименует ни один объект в базе данных. Результатом восстановления базы данных является та же база данных, которая была скопирована. Если процедуры названы в восстановленной базе данных [schema].[object], то я гарантирую вам, что они были названы точно так же и на старом сервере.
Вероятнее всего, вы не знали, что на старом сервере с пользователем, под которым вы вошли в систему, была связана неявная схема, и когда вы делали операторы вроде select from table
или , execute usp_foo
вы автоматически привязывались к схеме по умолчанию.
Вам необходимо обратиться к администратору старого сервера, чтобы он любезно сообщил вам разрешения и настройки по умолчанию, которые были у вас в системе, а затем попросить администратора нового сервера любезно восстановить для вас те же разрешения и настройки по умолчанию.