0

別のオプションとしてテーブル値パラメーターを使用できることを認識しており、すでに実装できました。このアプローチ (テーブル値ではなくテーブル変数) を使用しようとしている理由は、勉強していて、ストアド プロシージャを介してデータベースに挿入する方法について他の方法を学びたいからです。

私が持っている現在のクエリは次のとおりです。

CREATE PROCEDURE TVar
(
DECLARE @TblVar TABLE
(Product nvarchar(max), Qty int)

)
AS
Insert Into sample_tbl Select * FROM @TblVar

C#コードで、テーブル値パラメーターを使用するときに実行できるパラメーターとして渡すためにデータテーブルを使用するこの種のアプローチを持つことは可能ですか?クエリを実行するとエラーが発生します。

エラーは次のとおりです。

Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'DECLARE'.
Msg 102, Level 15, State 1, Line 5
Incorrect syntax near ')'.
4

1 に答える 1

6

はい。テーブル値パラメーターをストアド プロシージャのパラメーターとして使用でき、C# から呼び出すことができます。

を個別に宣言する必要がありますTABLE TYPE

CREATE TYPE MyTableType AS TABLE 
(
    Product nvarchar(max),
    Qty int
);
GO

そして次のように使用します:

CREATE PROCEDURE TVar   
(   
   @TblVar as dbo.MyTableType READONLY  
)   
AS  
...

DataTableこれらの記事では、C# からストアド プロシージャを呼び出す.NET をビルドする方法を示します。

于 2012-06-08T01:55:29.547 に答える