`
xinklabi
  • 浏览: 1591753 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

关于varchar(max), nvarchar(max)和varbinary(max)

 
阅读更多

在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max)、nvarchar(max)、varbinary(max) )。大值数据类型最多可以存储2^30-1个字节的数据。

这几个数据类型在行为上和较小的数据类型 varchar、nvarchar 和 varbinary 相同。

微软的说法是用这个数据类型来代替之前的text、ntext 和 image 数据类型,它们之间的对应关系为:

varchar(max):文本,代替text
nvarchar(max):Unicode文本,代替ntext ,存放多语言文本的时候必须用这个
varbinary(max):二进制数据,代替image,存放非文本数据必须用这个


有了大值数据类型之后,在对大值数据操作的时候要比以前灵活的多了。比如:之前text是不能用‘like’的,有了varchar(max)之后就没有这些问题了,因为varchar(max)在行为上和varchar(n)上相同,所以,可以用在varcahr的都可以用在varchar(max)上。

另外,这个还支持对插入的和删除的表中的大值数据类型列引用上使用 AFTER 触发器,text就不行

SQL 2005 中varchar(max) 的用法

-- 测试一 varchar(10)

declare @str1 varchar(4001)
declare @str2 varchar(4001)
select @str1 = replicate( ’1 ’,4001)
select @str2 = replicate( ’2 ’,4001)
--最大长度,其余截断
select len(@str1 + @str2)
--结果8000

-- 测试二 varchar(max)
declare @str1 varchar(4050)
declare @str2 varchar(4050)
select @str1 = replicate( ’1 ’,4050)
select @str2 = replicate( ’2 ’,4051)
select len(convert(varchar(max),@str1)+@str2)
select len(cast(@str1 as varchar(max))+@str2)
--结果8100

-- 测试三
declare @str1 varchar(max)
select @str1 = replicate(’1’,8006)
--字符最长为8000
select len(@str1)
--结果8000

分享到:
评论

相关推荐

    nvarchar binary数据类型转换

    在SQL Server中,将`nvarchar`转换为`binary`通常涉及到两个主要函数:`VARBINARY()`和`CONVERT()`。`VARBINARY()`函数可以直接将`nvarchar`数据转换为`binary`,而`CONVERT()`函数则提供了更灵活的转换选项,可以...

    MSSQL报错:参数数据类型 text 对于 replace 函数的参数 1 无效的解决办法

    但随着SQL Server 2005的发布,引入了新的大值数据类型,如varchar(max)、nvarchar(max)和varbinary(max),这些类型能够处理更大规模的数据,并且可以直接进行字符串函数操作。 遇到"参数数据类型 text 对于 ...

    查询条件是text的解决办法-sql sql text 数据类型为text解决办法

    为了更好地兼容性和性能,`text`和`ntext`分别被`varchar(max)`和`nvarchar(max)`所替代,而`image`则被`varbinary(max)`替代。这意味着在进行数据迁移或编写新查询时,需要注意到这些变化: - **`text` → `...

    SQL SERVER的数据类型综述

    Text、Ntext 和 Image 数据类型分别用于存储非Unicode文本、Unicode文本和大型二进制对象,但它们在SQL Server 2008之后已被nvarchar(max)、ntext(max) 和 varbinary(max)替代,因为这些新类型提供了更大的存储容量...

    数据表的管理与使用-完PPT课件.ppt

    这些类型区分英文和Unicode字符,其中text和ntext已不再推荐,应改为使用varchar(MAX)和nvarchar(MAX)。日期时间数据类型如datetime和smalldatetime,前者具有更高的精度,后者则适合不需要毫秒级别的日期时间记录。...

    SqlServerBase64 加密解密.rar

    解码Base64字符串回原始二进制数据,可以使用`CONVERT()`函数结合`VARBINARY(MAX)`和`FROM VARBINARY`的模式。例如: ```sql DECLARE @base64 VARCHAR(MAX) = '5L2g5aWz44GL44KJ44Oq44O844Oz44K/44Oq44O8' ...

    SQL-Server-Data-Type-Mappings.zip_Mappings

    SQL Server提供了多种数据类型,包括数值类型(如INT, FLOAT, DECIMAL)、字符类型(VARCHAR, NVARCHAR)、日期/时间类型(DATE, DATETIME2)、二进制类型(BINARY, VARBINARY)、以及其他特殊类型(如BIT, ...

    SQL数据类型和范围(SQLServer,MySql,Access)

    Microsoft Access、MySQL 以及 SQL Server 所使用的数据类型和范围。 SQL Server 数据类型 Character 字符串 数据类型 描述 存储 char(n) 固定长度的字符串。最多 8,000 个字符。 n varchar(n) 可变长度的...

    sqlserver2005的base64加密解密函数

    DECLARE @bin VARBINARY(MAX) = CAST(@input AS VARBINARY(MAX)) WHILE @i BEGIN SET @output += CHAR(CAST(ASCII(SUBSTRING(@bin, @i, 1)) AS TINYINT) % 65 + 65) SET @i += 1 END RETURN @output END `...

    SQLServer索引基础知识[整理].pdf

    1. Data页:存储除text、ntext、image、nvarchar(max)、varchar(max)、varbinary(max)和xml以外的数据行。 2. Index页:存放索引条目。 3. Text/Image页:用于存储大型对象数据类型,如text、ntext、image等。 4. ...

    SQL2000与SQL2005语法对比

    最后,SQL2005引入了一组新的大数据类型,如`varchar(max)`、`nvarchar(max)`和`varbinary(max)`,这些都是对原有`varchar`、`nvarchar`和`varbinary`类型的扩展,最大可以存储2GB的数据。这些新类型与`text`、`...

    数据库原理电子教案:第四章 SQL Server表管理.doc

    7. 文本和图像型:text、ntext和image,用于存储大量文本和图像数据,但ntext和image已被现代版本的SQL Server推荐替换为nvarchar(max)和varbinary(max)。 8. 日期时间型:datetime和smalldatetime,前者存储范围更...

    sql server 2005数据类型说明

    在SQL Server 2005中,这些类型被标记为不推荐使用,建议使用`varchar(max)`和`nvarchar(max)`作为替代。 #### `nvarchar` 和 `ntext` - `nvarchar` 是Unicode版本的`varchar`,其最大长度为4000个字符或8KB。由于...

    SQL Server 数据库技术开发大全

    - **大对象页(Text/Image)**:用于存储大型对象数据类型,如`TEXT`、`NTEXT`、`IMAGE`、`NVARCHAR(MAX)`、`VARCHAR(MAX)`、`VARBINARY(MAX)`和`XML`等。 - **全局分配映射页(Global Allocation Map/Shared Global...

    Sql2000与Sql2005

    - **VARCHAR(MAX)** 和 **NVARCHAR(MAX)**:取代了`TEXT`和`NTEXT`类型,能够存储高达2GB的数据,而不仅仅是限制于8000个字符或4000个双字节字符。 - **VARBINARY(MAX)**:类似地,它替代了`IMAGE`类型,提供更大的...

    SQLServer2005数据库--管理与维护.pptx

    3. 新的数据类型:引入了如varchar(max)、nvarchar(max)、varbinary(max)和XML等大数值类型,打破了8K的限制,最大可存储2GB的数据,且XML类型支持W3C的XQuery语言。 4. ADO.NET 2.0集成:SQL Native Client提供了...

    SQL 2005保存文件

    IMAGE数据类型(已废弃)和VARBINARY(MAX)是两种主要的BLOB类型。IMAGE可以存储最多2GB的数据,而VARBINARY(MAX)则可以存储更大的数据量,最多可达2^31-1个字节。 2. **创建表结构**:要保存文件,首先需要创建一个...

    SQLServer2008中的数据类型总结.doc

    `VarChar(Max)`和`Text`类型则在存储大量文本时提供了灵活性,但需要注意存储空间的占用。 总的来说,理解SQL Server 2008的数据类型及其特性是数据库设计的基础。开发者和数据库管理员应根据实际需求,综合考虑...

    数据类型的优先顺序.doc类型顺序

    `ntext`、`text`和`image`是旧版的大文本和图像数据类型,它们已被`nvarchar(max)`、`varchar(max)`和`varbinary(max)`取代,但在这里仍被提及。`timestamp`并不是我们通常理解的时间戳,而是用于记录行版本的系统列...

    SQLServer数据库基本知识点.pdf

    - **text**: 存储大量非Unicode文本,已被`nvarchar(max)`和`varchar(max)`取代。 - **nchar, nvarchar**: Unicode字符数据类型,nchar是定长,nvarchar是变长,支持多种语言字符。 - **ntext**: 大量Unicode文本...

Global site tag (gtag.js) - Google Analytics