переименовать функцию в живую БД, чтобы соответствовать локальной БД - PullRequest
1 голос
/ 08 марта 2012

У меня проблемы с табличной функцией, созданной в sqlserver 2008.

Я создал его в своей локальной базе данных, и он выглядит как:

[dbo]. MyFunction при просмотре в студии управления.

, но когда я создаю функцию на live db (я использую общий хостинг, кстати), она выглядит как:

[myusername] .MyFunction при просмотре в студии управления.

Это вызывает у меня проблемы, так как я использую sqlmetal для генерации классов на основе БД. Я бы предпочел, чтобы имена были одинаковыми для обоих БД

Как я могу переименовать его? как я пытался изменить его, но это не сработало

1 Ответ

1 голос
/ 08 марта 2012

Запустите следующую инструкцию (с пользователем, обладающим достаточными разрешениями)

exec sp_rename '[myusername].MyFunction', '[dbo].MyFunction'

Если ваш пользователь не является членом роли db_owner, любой созданный вами объект без указания схемы будет создан в вашей "пользовательская схема "

Чтобы предотвратить это в будущем, создайте свою функцию как:

create function dbo.MyFunction()
returns ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...