5

I'm interested in configuring Visual Studio (2010) so that when deploying C# CLR Database projects, it puts stuff in schemas other than DBO. I understand I can update the function/procedure/etc... wrappers it creates manually to make this happen: CLR Stored Procedures: how to set the schema/owner?

However, I'd really like to automate the process somehow. If anybody knows, I'd really appreciate the answer!

4

5 に答える 5

4

を使用して、ストアドプロシージャをあるスキーマから別のスキーマに変更できます

ALTER SCHEMA Org TRANSFER dbo.spUdpateCompany
于 2013-01-25T10:46:00.833 に答える
1

この質問は、生成されたT-SQLラッパーオブジェクトの「デフォルトスキーマ」構成フィールドを持つVisual Studio 2012の時点で廃止されていることに注意してください。これは、次の回答の上部にある「更新」セクションにも記載されています;-) :

CLR ストアド プロシージャ: スキーマ/所有者を設定する方法は?

于 2015-08-28T14:47:44.007 に答える
1

セキュリティ関連であり、「設計上」行われているようです。http://support.microsoft.com/kb/918346

于 2011-01-03T10:38:52.583 に答える
1

以下のように、各オブジェクトのスクリプトを配置後のスクリプトに入れることができます。以下のスクリプトは、スキーマ [Org] を使用してストアド プロシージャを再作成します。お役に立てれば。

ステップ 1 - 既定のスキーマ [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

ステップ 2 - [Org] スキーマにストアド プロシージャが既に存在する場合は削除し、[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
于 2011-06-30T07:14:46.413 に答える