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

Колона за идентичност в параметър със стойност на таблица в процедура, как да се дефинира DataTable

Имах същия проблем, при който искаме идентичност на типа, но не искаме да предоставим стойност. Ключът е да използвате SqlMetaData конструктор за тази колона, която задава useServerDefault на true :

Според тази статия на използване на дефиниран от потребителя тип таблица с идентифицираща колона в ado net от 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на съхранени процедури на SQL Server от Python (pyodbc)

  2. Как да активирате всички ограничения за проверка и външни ключове в база данни в SQL Server (примери за T-SQL)

  3. Как да накарам разширението SQLSRV да работи с PHP, тъй като MSSQL е отхвърлен?

  4. SQL сървър (MSSQL DBA) Уроци за база данни за начинаещи администратори на бази данни

  5. Премахване на запомнения списък с данни за вход и пароли в SQL Server Management Studio