Domanda

Mi interessa la configurazione di Visual Studio (2010) in modo tale che durante la distribuzione di progetti di database C # CLR, mette roba in schemi diversi da DBO. Capisco posso aggiornare la funzione / procedura / etc ... wrapper che crea manualmente per rendere questo accada: CLR stored procedure:? come impostare lo schema del proprietario /

Tuttavia, mi piacerebbe molto per automatizzare il processo in qualche modo. Se qualcuno sa, mi piacerebbe davvero apprezzare la risposta!

È stato utile?

Soluzione

Va ricordato che questa domanda è obsoleta come di Visual Studio 2012, che ha un campo di configurazione "schema predefinito" per il T-SQL generato involucro oggetti. Questo è stato anche indicato nella sezione "Aggiorna" nella parte superiore della seguente risposta ; -) :

CLR stored procedure: come impostare lo schema / proprietario?

Altri suggerimenti

È possibile modificare stored procedure da uno schema all'altro utilizzando

ALTER SCHEMA Org TRANSFER dbo.spUdpateCompany

Sembra essere connessi e fatto di sicurezza "by design". http://support.microsoft.com/kb/918346

È possibile inserire gli script per ogni oggetto in script di post implementazione come qui di seguito. Qui di seguito lo script ricrea stored procedure con lo schema [Org]. Spero che questo aiuti.

Step1 - Rimuovere stored procedure aggiunto automaticamente dal progetto in quanto è creato con schema predefinito [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

Step2 -. Rimuovere stored procedure, se già esiste in [Org] schema e ri-creare stored procedure nello schema [Org]

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

Nelle proprietà SQLCLR per il progetto SSDT, è possibile disattivare "Generate DDL". Quindi è possibile creare il proprio oggetto SQL che si collega al CLR di montaggio. Ad esempio, aggiungere una nuova stored procedure come

CREATE PROCEDURE [schema].[StoredProcedure] @parameter BIGINT NULL AS EXTERNAL NAME [AssemblyNameFromProjectProperties].[ClassWithProcedure].[Method]; GO

Questo vi permetterà di mettere oggetti diversi in diversi schemi

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top