В вашем случае вы должны использовать динамический T-SQL. Тем не менее, вы должны рассмотреть некоторые дополнительные параметры.
Во-первых, если вы действительно знаете имя своей схемы, то совершенно безопасно создать схему, а затем хранимую процедуру.
В контекстном меню проекта выберите «Добавить новый элемент», а затем в разделе «Безопасность» выберите «Shema», как показано на рисунке ниже.
После этого вы можете добавить хранимую процедуру, добавив префикс к вновь созданной схеме, см. Изображение ниже.
Visual Studio достаточно умен, чтобы поставить создание схемы перед созданием хранимой процедуры. Есть и второй вариант. Вы можете создать свою хранимую процедуру в схеме 'dbo'. Затем в сценарии PostDeployment вы можете перенести хранимую процедуру в «правильную» схему. Имя схемы можно заменить с помощью переменной SQLCMD.
Таким образом, в основном в сценарии PostDeployment вы помещаете оператор следующим образом
ALTER SCHEMA myShema TRANSFER dbo.myStoredProcedure;
Перед этим вы должны выполнить динамический T-SQL, как показано в следующем фрагменте.
:setvar ShemaName "MyShema"
IF NOT EXISTS (
SELECT schema_name
FROM information_schema.schemata
WHERE schema_name = '$(ShemaName)')
BEGIN
EXEC sp_executesql N'CREATE SCHEMA $(ShemaName)'
END