Question

Je suis intéressé à configurer Visual Studio (2010) de sorte que lors du déploiement de C # CLR projets de base de données, il met des choses dans les schémas autres que dbo. Je comprends que je peux mettre à jour la fonction / procédure / etc ... wrappers qu'il crée manuellement pour ce faire: procédures stockées CLR: comment définir le schéma / propriétaire

Cependant, je voudrais vraiment automatiser le processus en quelque sorte. Si quelqu'un sait, j'apprécie vraiment la réponse!

Était-ce utile?

La solution

Il convient de mentionner que cette question est obsolète à partir de Visual Studio 2012 qui a un champ de configuration « schéma par défaut » pour le T-SQL wrapper objets générés. Cela a également été mentionné dans la section "Mise à jour" en haut de la réponse suivante ; -) :

procédures stockées CLR: comment configurer le schéma / propriétaire

Autres conseils

Vous pouvez modifier la procédure stockée d'un schéma à un autre en utilisant

ALTER SCHEMA Org TRANSFER dbo.spUdpateCompany

Il semble être liés à la sécurité et fait « par la conception ». http://support.microsoft.com/kb/918346

Vous pouvez mettre des scripts pour chaque objet dans le script post déploiement comme celui ci-dessous. Ci-dessous le script recrée la procédure stockée avec le schéma [Org]. Espérons que cela aide.

Etape 1 - Supprimer procédure stockée automatiquement ajoutée par le projet car il est créé avec le schéma par défaut [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

Étape 2 -. Retirer la procédure stockée si elles existent déjà dans [Org] schéma et recréer la procédure stockée dans le schéma [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

Dans les propriétés SQLCLR du projet SSDT, vous pouvez désactiver « Générer DDL ». Ensuite, vous pouvez créer votre propre objet SQL qui se fixe à l'assemblage CLR. Par exemple, ajouter une nouvelle procédure stockée comme

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

Cela vous permettra de mettre différents objets dans différents schémas

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top