SQL Server类型与C#类型对应关系


SQL Server 2000


C#


CodeSmith


数据类型


取值范围


数据类型


取值范围


空值代替值


数据类型


bigint


-2^63 (-9,223,372,036,854,775,807) 至 2^63-1 (9,223,372,036,854,775,807)


Int64


-9,223,372,036,854,775,808;即十六进制的 0x8000000000000000至9,223,372,036,854,775,807;即十六进制的 0x7FFFFFFFFFFFFFFF


Int64.MinValue


Int64


binary


固定长度的 n 个字节二进制数据。N 必须从 1 到 8,000。存储空间大小为 n+4 字节。


Byte[]

 
null


Binary


bit


True,False


enum


0,1,-1(使用一个枚举变量来代替)

public enum bitNull

{

False,

True,

Null = -1

};


-1


Boolean


char


长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。


string

 
null


AnsiStringFixedLength


datetime


存储从 1753 年 1 月 1 日至 9999 年 12 月 31 日的日期(每个数值要求 8 个字节的存储空间)


DateTime


0001 年 1 月 1 日 00:00:00 .0000000至9999 年 12 月 31 日 23:59:59.9999999


1753-01-01 0:00:00


DateTime


decimal


从 - 10^38 +1 到 10^38 - 1


Decimal


-79,228,162,514,264,337,593,543,950,335至79,228,162,514,264,337,593,543,950,335


Decimal.MinValue


Decimal


float


从 - 1.79E + 308 到 1.79E + 308 之间的浮点数字数据


Double


-1.79769313486232e308至+1.79769313486232e308


Double.MinValue


Double


image


可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间。


Byte[]

 
null


Binary


int


从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)


int


-2,147,483,648 到 2,147,483,647


-2147483648


Int32


money


货币数据值介于 -2^63 (-922,337,203,685,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。存储大小为 8 个字节。


Single


-3.402823e38至+3.402823e38


Single.MinValue


Currency


nchar


至多为 4000 个 Unicode 字符


string

 
null


StringFixedLength


ntext


可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。


string

 
null


String


numeric


使用最大精度时,有效值从 - 10^38 +1 到 10^38 – 1


Decimal


-79,228,162,514,264,337,593,543,950,335至79,228,162,514,264,337,593,543,950,335


Decimal.MinValue


Decimal


nvarchar


包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。


string

 
null


String


real


从 ?3.40E + 38 到 3.40E + 38 之间的浮点数字数据。存储大小为 4 字节。


Single


-3.402823e38至+3.402823e38


Single.MinValue


Single


smalldatetime


从 1900 年 1 月 1 日至 2079 年 6 月 6 日的日期(每个数值要求 4 个字节的存储空间)。


DateTime


0001 年 1 月 1 日 00:00:00 .0000000至9999 年 12 月 31 日 23:59:59.9999999


1900-01-01 0:00:00


DateTime


smallint


从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。


Int16


-32768至32767


Int16.MinValue


Int16


smallmoney


货币数据值介于 -214,748.3648 与 +214.748,3647 之间,精确到货币单位的千分之十。存储大小为 4 个字节。


Single


-3.402823e38至+3.402823e38


Single.MinValue


Currency


sql_variant


在SQL Server 2000中不支持大数据类型text, ntext, image, timestamp,其他类型均支持


Object

 
null


Object


text


服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。


string

 
null


AnsiString


timestamp


timestamp 这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的。timestamp 一般用作给表行加版本戳的机制。存储大小为 8 字节。


Byte[]

 
null


Binary


tinyint


从 0 到 255 的整型数据。存储大小为 1 字节。


Byte


0至255


Byte.MinValue


Byte


uniqueidentifier


存储 16 字节的二进制值,该值的使用与全局唯一标识符 (GUID) 一样。GUID 是一个唯一的二进制数字;世界上的任何两台计算机都不会生成重复的 GUID 值。GUID 主要用于在拥有多个节点、多台计算机的网络中,分配必须具有唯一性的标识符。


Guid

 
Guid.Empty


Guid


varbinary


n 个字节变长二进制数据。n 必须从 1 到 8,000。存储空间大小为实际输入数据长度 +4 个字节,而不是 n 个字节。输入的数据长度可能为 0 字节。


Byte[]

 
null


Binary


varchar


长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。


string

 
null


AnsiString

参考:http://www.cnblogs.com/suizhikuo/archive/2011/11/26/2264294.html

时间: 2024-10-13 23:17:15

SQL Server类型与C#类型对应关系的相关文章

使用 SQL Server 的 uniqueidentifier 字段类型

原文:使用 SQL Server 的 uniqueidentifier 字段类型 SQL Server 自 2008 版起引入了?uniqueidentifier?字段,它存储的是一个 UUID, 或者叫 GUID,内部存储为 16 个字节.SQL Server 可用两个函数来生成?uniqueidentifier, 分别是?NEWID()?和?NEWSEQUENTIALID(), 后者只能用作字段的默认值.Java 也有一个 UUID 工具类?java.uti.UUID,?UUID.rando

SQL Server中的锁类型及用法

一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 不可重复读 A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致 并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些

SQL Server 发布订阅 发布类型详解

MicrosoftSQL Server 提供了三种复制类型. 每种复制类型都适合于不同应用程序的要求. 根据应用程序需要,可以在拓扑中使用一种或多种复制类型: 快照复制 事务复制 合并复制 为了帮助您选择适当的复制类型,此主题提供了有关下列内容的信息: 复制方案 本部分简要描述了复制的多种常用情况,还提供了指向更加详细描述的链接. 复制类型 本部分描述了每个复制类型所适合的应用程序要求. 在订阅服务器上更新数据 本部分描述了需要在订阅服务器上更新数据的应用程序的可用选项. 我们建议您先要通读方案

Oracle/MySQL/SQL Server修改表字段类型和长度

Oracle ALTER TABLE T_USER MODIFY USERNAME VARCHAR2(18); MySQL ALTER TABLE T_USER CHANGE USERNAME USERNAME VARCHAR(200) NOT NULL COMMENT 'username'; SQL Server ALTER TABLE T_USER ALTER COLUMN USERNAME VARCHAR(200); [注意]SQL Server 字段有约束或者索引,需要按如下方式处理:

SQL SERVER 如果判断text类型数据不为空

一个字段Remark的数据类型设置先设置为varcharr(255),后来考虑到扩展性需要将其定义为TEXT类型,但是SQL 语句报错.      SQL 语句:      SELECT * FROM TABLE  WHERE  ISNULL(Remark,'')<>''       报错信息:数据类型 text 和 varchar 在 not equal to 运算符中不兼容.      解决办法:使用datalength(字段名)函数                         SEL

Sql Server 新的日期类型

新的日期类型:是出现在2008中的在2005中没有的日期类型. 1,Date 数据类型  2,time 数据类型  3, datetime2 数据类型  4, datetimeoffset 数据类型 1,Date 数据类型 日期.格式:YYYY-MM-DD 注释:支持的范围是从 '1000-01-01' 到 '9999-12-31' .它的存在避免了我们取值的时候产生日期之外的数据 12AM DECLARE @Date AS DATE SET @Date=GETDATE() print @Dat

SQL Server中日期时间类型字段只取年月日

select CONVERT(varchar, getdate(), 120 ) 2004-09-12 11:06:08 select CONVERT(varchar(10), datatime1, 120 )2004-09-12 select CONVERT(varchar(4), datatime1, 120 )+'年'+substring(CONVERT(varchar(10), datatime1, 120 ),6,2)+'月'+substring(CONVERT(varchar(10)

SQL SERVER -&gt;&gt; CXPacket等待类型

最近做了一个项目,把整个数据仓库平台下所有的表和索引都改成页级别的数据压缩.昨天发现测试环境下的某个workload跑得比平时慢.最后我们定位了到这个workload做的事情中可能造成性能下降的地方,其实也就是定位到某条SQL语句.这条语句是一条MERGE语句.我们通过复制出另外两张表(MERGE语句中的target表).这样我们就有三张表:一张是PAGE DATA_COMPRESSION,一张是ROW DATA_COMPRESSION,最后一张是NONE DATA_COMPRESSION.此举

sql server字符串的类型

sql server字符串分为不同的类型,下面就将为您介绍几个sql server字符串的常见类型,希望对您学习sql server字符串能有所帮助. nchar 此数据类型可存储1~4000个定长Unicode字符串,字符串长度在创建时指定:如未指定,默认为nchar(1).每个字符占用2bytes存储空间. varchar 此数据类型可存储最大值为8000个字符的可变长字符串.可变长字符串的最大长度在创建时指定,如varchar(50),每个字符占用1byte存储空间. nvarchar 此

Sql Server中的数据类型和Mysql中的数据类型的对应关系(转)

Sql Server中的数据类型和Mysql中的数据类型的对应关系(转):https://blog.csdn.net/lilong329329/article/details/78899477 一.SQL SERVER与MySQL数据存储的差异 1.SQL SERVER中的datetime,保留到微秒(秒后小数点3位),而mysql仅保留到秒,转换后是否会影响业务,如果影响,需要新增一个字段专门来存储微秒或者毫秒,虽然mysql中没有时间数据类型的精度到达微秒或者毫秒,但是mysql提供对微秒的