Search code examples
c#sql-serversizesqlparametersqldbtype

What size for a SqlDbType parameter with bigint?


What is the size to specify for a bigint parameter?

SqlParameter param = new SqlParameter("@Param", SqlDbType.Bigint);

param.Size = ???

Or can specifying the size be omitted altogether?


Solution

  • SQL Server Integer Data types INT, TINYINT, SMALLINT OR BIGINT all has a specific Range and fixed storage space required.

    In Sql Server when consuming these data types we cannot limit the range or space required to store these data types by defining a size.

    For more information on size and range of these data types have a look here SQL SERVER int, bigint, smallint, and tinyint

    ╔═══════════╦══════════════════════════════════════════════════════════════════════════╦═════════╗
    ║ Data type ║                                  Range                                   ║ Storage ║
    ╠═══════════╬══════════════════════════════════════════════════════════════════════════╬═════════╣
    ║ bigint    ║ -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807) ║ 8 Bytes ║
    ║ int       ║ -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)                         ║ 4 Bytes ║
    ║ smallint  ║ -2^15 (-32,768) to 2^15-1 (32,767)                                       ║ 2 Bytes ║
    ║ tinyint   ║ 0 to 255                                                                 ║ 1 Byte  ║
    ╚═══════════╩══════════════════════════════════════════════════════════════════════════╩═════════╝