Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Подаване на параметър от тип „обект“ в параметър със стойност на таблица за колона sql_variant

Тази публикация е на много години, но срещнах същия проблем и имам решение. Ако не използвате DataTable, а вместо това попълвате колекция от SqlDataRecord, тогава можете да зададете типа данни на SqlDataRecord на 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. Как мога да направя заявка за стойност в XML колоната на SQL Server

  2. msxml3.dll в контекст sp_OAMethod "изпрати"

  3. Как работи SET ROWCOUNT в SQL Server

  4. Как DB_NAME() работи в SQL Server

  5. Как да генерирате изявление за добавяне на колона за всички таблици в база данни в SQL Server - SQL Server / T-SQL урок, част 49