UPDATE: В Visual Studio 2012 это теперь можно выполнить с помощью окна свойств проекта «Project Database Database SQL». Соответствующим свойством является «Схема по умолчанию» на вкладке «Настройки проекта». Изменение этого значения изменяет сгенерированный сценарий развертывания, чтобы поместить имя схемы перед функциями, хранимыми процедурами и т. Д. Обязательно добавьте объект Schema в проект с тем же именем или вы получите ошибки сборки.
Я не знаю, какая версия Visual Studio вы используете, но при создании CLR хранимой процедуры проекта в Visual Studio 2010, проект включает в себя два SQL-скриптов: PreDeploymentScript.sql и PostDeploymentScript.sql.
Мы просто используем их для maniuplate вещей так, как хотим.
В сценарии перед развертыванием, у нас есть что-то вроде этого:
-- DROP EXISTING ITEM FROM CURRENT SCHEMA
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Utilities].[fn_Create_Md5_Hash]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [Utilities].[fn_Create_Md5_Hash]
GO
Тогда, в сценарии после развертывания, мы имеем следующее:
-- DEPLOYMENT WIZARD RECREATES ITEM IN dbo SCHEMA
-- DROP NEW ITEM FROM dbo SCHEMA
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[fn_Create_Md5_Hash]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[fn_Create_Md5_Hash]
GO
-- RECREATE THE ITEM BACK IN THE SCHEMA YOU WANT
CREATE FUNCTION [Utilities].[fn_Create_Md5_Hash](@source [varbinary](max))
RETURNS [varbinary](8000) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [NameSpace].[UserDefinedFunctions].[fn_Create_Md5_Hash]
GO
Надежда, что помогает!
Этот запрос, насколько он связан с установкой схемы в развертывании Visual Studio/SSDT, устарел, как и VS 2012. См. Раздел ** ОБНОВЛЕНИЕ ** в верхней части этого ответа ниже: http: // stackoverflow.com/a/4597610/577765 –