9

SQL Server の 1 つのデータベースにユーザー定義のテーブル型があります (これを と呼びましょうDB1)。

私の型の定義は非常に単純で、2 つの列しか含まれていません。私のタイプを作成するスクリプトは以下のとおりです。

CREATE TYPE [dbo].[CustomList] AS TABLE
(
    [ID] [int] ,
    [Display] [NVARCHAR] (100)  
)

別のデータベースでも同じスクリプトを実行したので、私のタイプは 2 つのデータベース上にあります (2 番目のデータベースを呼び出しましょうDB2)。

DB1ここで、C# アプリからストアド プロシージャを呼び出し、CustomListユーザー定義型のパラメーターを渡します。

のプロシージャは、 this を渡すときにDB1プロシージャを呼び出す必要があります。DB2CustomList

したがって、 の手順はDB1次のようになります。

ALTER PROCEDURE [dbo].[selectData]
    @psCustomList CustomList ReadOnly
AS
BEGIN
    EXEC DB2.dbo.selectMoreData @psCustomList   
END

の手順DB2は次のようになります (必要なのはパラメーター リストだけです)。

ALTER PROCEDURE [dbo].[selectMoreData]
    @psCustomList CustomList ReadOnly
AS
BEGIN
......

これを実行すると、次のエラーが表示されます。

オペランド タイプの衝突: CustomList は CustomList と互換性がありません

誰かが私が間違っていることを知っていますか?

SQL Server 2008 を使用しています。

前もって感謝します

4

1 に答える 1