sql >> Database teknologi >  >> RDS >> Sqlserver

Identitetskolonne i en tabelværdiparameter i procedure, hvordan man definerer DataTable

Jeg havde det samme problem, hvor vi vil have en identitet på typen, men ikke vil give en værdi. Nøglen er at bruge en SqlMetaData konstruktør for den kolonne, der indstiller useServerDefault til true :

Ifølge denne artikel på brugerdefineret tabeltype med identifikationskolonne i ado net af Tim Van Wassenhove

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. Sådan konfigureres Microsoft® ODBC Driver 11 til SQL Server® på RedHat Linux med PHP

  2. Mysql:tilføjelse af fremmed nøgle giver ingen advarsel/fejl på MyISAM-tabeller

  3. Beregning af rang i PHP/MySQL

  4. indstille blob til null ved hjælp af PreparedStatement