TSD00563 При развертывании могут возникать ошибки, поскольку он зависит от [sys].[Sp_executesql] и не существует в целевой базе данных.

Я сталкиваюсь с очень раздражающей проблемой. Один из наших SPROC создает динамический бит SQL, который затем выполняется с sp_executesql (пожалуйста, давайте не будем вдаваться в проблемы с созданием строк SQL для выполнения).

Используя проект базы данных Visual Studio 2010 (он же DataDude) для сравнения схем и развертываний, я получаю следующую ошибку для SPROC:

TSD00563 В этом развертывании могут возникнуть ошибки во время выполнения, поскольку [dbo].[MYSPROC] зависит от [sys].[Sp_executesql] и [sys].[Sp_executesql] не существует в целевой базе данных.

Кто-нибудь знает, как я могу обойти это?

У меня есть ссылка на основной файл схемы базы данных, но это не имеет значения. Кроме того, это не ссылка master, но sys вместо.

Большое спасибо, Jaans

2 ответа

Решение

Использовать. префикс перед [sys].[sp_executesql]

Вот пример EXEC .sys.sp_executesql 'SELECT * FROM Table'

Странно действительно!

"Проблема, которую вы упомянули, является известной проблемой, мы исправили ее для RTM. И когда вы добавляете ссылку на db в основной файл.dbschema, вам нужно убедиться, что часть имени базы данных выбрана как буквальная и называется" master ""

http://social.msdn.microsoft.com/Forums/en-US/vstsdb/thread/68b0ce97-5275-42af-b213-bd456ce882d7

Другие вопросы по тегам