2

Access から SQL サーバーにテーブルを渡し、ストアド プロシージャを実行する必要があります。

これを行うために、Access でパススルー クエリを使用しています。

私のパススルークエリ:

DECLARE @MyVar TABLE { .....<variables> }

INSERT INTO @MyVar   SELECT *
    FROM [MyTable]

EXEC sproc_test @Myvar

私のストアドプロシージャ:

ALTER PROCEDURE [dbo].[sproc_test] 

@MyVar TABLE(....<variables>) 

AS ...<the rest of the sproc>

これは機能するはずですか?ストアド プロシージャで「TABLE 付近の構文が正しくありません」というエラーが発生します。

4

1 に答える 1

1

TABLE 変数をストアド プロシージャのパラメーターとして受け入れるには、sproc 定義で型を TABLE として定義するのではなく、テーブル型を定義し、それを sproc の型として指定する必要があります。

たとえば、このような結果になります

ALTER PROCEDURE [dbo].[sproc_test]
    @MyVar MyTableType READONLY
AS
...

テーブル型の定義方法などはこちらの記事をご覧ください。

于 2010-10-18T10:37:09.517 に答える