0
私はWinFormsデスクトップアプリケーションで作業しています。このアプリケーションでは、SQL Serverデータベースに関するいくつかの更新を行う必要があります。私は、テーブルパラメータテーブルパラメータを持つ単一実行ストアドプロシージャまたは分離パラメータを持つ複数実行プロシージャを使用する必要がありますか?
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.AddWithValue("@changes", changes.ToTable(false, "ItemNo", "Info"));
でストアドプロシージャでそれこれを行うと、一度だけ、またはループで文字列パラメータと手順複数回を実行手順を実行することができます。
for (...)
{
...
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.AddWithValue("@Item", "Item 1"));`
comm.Parameters.AddWithValue("@Info", "Info 1"));`
int i = comm.ExecuteNonQuery();
...
}
これを行うのがベストプラクティスですか?
ストアドプロシージャ内で何をしているのかを知ることが重要です。いくつかのレコードの挿入/更新だけの場合は、ストアドプロシージャを使用せず、適切に記述されたパラメータ化されたクエリ(必ずしもAddWithValueを使用しません) – Steve
ストアドプロシージャには複雑な操作は含まれていません。アプリケーションのレイヤーを分離した状態にするために、アプリケーション内でSQLクエリを使用しないので、私の場合はあなたの提案が役に立たない。 – Adnand
また、XMLを渡してバッチとして更新することもできます。 –