TVP をストアド プロシージャに渡すときにエラーが発生する
私のコードは
SqlConnection con=new SqlConnection();
con.Open();
SqlCommand cmd=new SqlCommand("SPName",con);
DataTable dataTable = new DataTable("vpTableGuid");
dataTable.Columns.Add("id1", typeof(Guid));
dataTable.Columns.Add("rowNum", typeof(Int32));
dataTable.Rows.Add(Guid.NewGuid(),1);
dataTable.Rows.Add(Guid.NewGuid(),2);
dataTable.Rows.Add(Guid.NewGuid(),3);
SqlParameter param = new SqlParameter("@evaluatorList", dataTable);
param.SqlDbType = SqlDbType.Structured;
param.TypeName = "dbo.vpTableGuid";
command.Parameters.Add(param);
command.ExecuteNonQuery();
上記のコードはエラーをスローします。
テーブル変数では許可されていない ID 列への INSERT。
テーブル値パラメーター "@evaluatorList" のデータは、パラメーターのテーブル型に準拠していません。