Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Melewati parameter tipe 'objek' dalam parameter bernilai tabel untuk kolom sql_variant

Posting ini sudah berumur bertahun-tahun sekarang tetapi saya mengalami masalah yang sama dan punya solusi. Jika Anda tidak menggunakan DataTable tetapi mengisi kumpulan SqlDataRecord maka Anda dapat mengatur tipe data SqlDataRecord ke SqlDbType.Variant.

 List<SqlDataRecord> dataTable = new List<SqlDataRecord>();
var dr = new SqlDataRecord(
                            new SqlMetaData("Id", SqlDbType.Int),
                            new SqlMetaData("Value", SqlDbType.Variant));

dr.SetInt32(0, id);
dr.SetValue(1, myObject);

dataTable.Add(dr);

[...]

SqlCommand sqlCommand = new SqlCommand("dbo.MyProc");
var structuredParam = sqlCommand.Parameters.Add("myTableParam", SqlDbType.Structured);
structuredParam.Value = dataTable;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolom identitas SQL Server 2000/2005 + replikasi

  2. Pilihan Tertimbang Acak di T-SQL

  3. sp_add_schedule vs sp_add_jobschedule di SQL Server:Apa Bedanya?

  4. Migrasi Kode Pertama dan Prosedur Tersimpan

  5. Padding Kiri di SQL Server – 3 LPAD() Setara