Esquema para CLR procedimiento almacenado durante la implementación
-
29-09-2019 - |
Pregunta
Estoy interesado en la configuración de Visual Studio (2010), de modo que, cuando implemente proyectos de base de datos C # CLR, pone cosas en esquemas distintos de DBO. Entiendo que puedo actualizar la función / procedimiento / etc ... envoltorios que crea manualmente para que esto suceda: :? cómo configurar el esquema / propietario
Sin embargo, me gusta mucho para automatizar el proceso de alguna manera. Si alguien sabe, yo realmente aprecio la respuesta!
Solución
Se debe mencionar que esta pregunta es obsoleta a partir de Visual Studio 2012 que tiene un campo de configuración "Default esquema" para el T-SQL generado envoltura de objetos. Esto también se ha observado en la sección "Actualizar" en la parte superior de la siguiente respuesta ; -)
CLR procedimientos almacenados: cómo configurar el esquema / propietario?
Otros consejos
Puede cambiar el procedimiento almacenado de un esquema a otro utilizando
ALTER SCHEMA Org TRANSFER dbo.spUdpateCompany
Parece ser relacionados con la seguridad y el hecho "de diseño". http://support.microsoft.com/kb/918346
Puedes poner guiones para cada objeto en el script de implementación post como a continuación. A continuación guión recrea procedimiento almacenado con el esquema [Org]. Espero que esto ayude.
Paso 1 - Retire el procedimiento almacenado añade automáticamente por el proyecto, ya que se crea con el esquema por omisión [dbo]
.IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spUpdateCompany]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[spUpdateCompany]
GO
Paso 2 -. Retirar procedimiento almacenado si ya existen en [Org] esquema y volver a crear procedimiento almacenado en [Org] esquema
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[Org].[spUpdateCompany]') AND type in (N'P', N'PC'))
DROP PROCEDURE [Org].[spUpdateCompany]
GO
CREATE PROCEDURE [Org].[spUpdateCompany]
@Id int,
@Name [nvarchar](4000)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [SQLServerProject.CLR].[StoredProcedures].[spUpdateCompany]
GO
En las propiedades SQLCLR para el proyecto SSDT, puede desactivar la opción "Generar DDL". A continuación, puede crear su propio objeto SQL que se conecta al CLR montaje. Por ejemplo, añadir un nuevo procedimiento almacenado como
CREATE PROCEDURE [schema].[StoredProcedure]
@parameter BIGINT NULL
AS EXTERNAL NAME [AssemblyNameFromProjectProperties].[ClassWithProcedure].[Method];
GO
Esto le permitirá poner diferentes objetos en diferentes esquemas