sql >> Databáze >  >> RDS >> Sqlserver

Sloupec identity v parametru s hodnotou tabulky v postupu, jak definovat DataTable

Měl jsem stejný problém, kdy chceme identitu na typu, ale nechceme poskytovat hodnotu. Klíčem je použití SqlMetaData konstruktor pro tento sloupec, který nastavuje useServerDefault true :

Podle tohoto článku na pomocí uživatelem definovaného typu tabulky s identifikačním sloupcem v ado net od Tima Van Wassenhovea

SQL :

CREATE TYPE [Star].[example] AS TABLE(  
  [Ordinal] [int] IDENTITY(1,1) NOT NULL,  
  [Name] [nvarchar](200) NOT NULL,
)

C# :

var sqlMetaData = new[] 
{  
  new SqlMetaData("Ordinal", SqlDbType.Int, true, false, SortOrder.Unspecified, -1),   
  new SqlMetaData("Name", SqlDbType.NVarChar, 200)
};

sqlRecords = new HashSet<SqlDataRecord>(usersToInclude.Select(user =>
{   
  var record = new SqlDataRecord(sqlMetaData);   
  record.SetString(1, user.Name);   
  return record; 
}));

new SqlMetaData("IdentityField", SqlDbType.Int, true, false, SortOrder.Unspecified, -1)


  1. Jak mohu provést tento dotaz v oracle

  2. MySQL negeneruje správné výsledky pomocí parametru data ODBC

  3. mysql:Jak získat další datum vybraného dne?

  4. Existuje rozdíl ve výkonu mezi CTE, dílčím dotazem, dočasnou tabulkou nebo proměnnou tabulky?