sql varchar(max)vs varchar(fix)

前端之家收集整理的这篇文章主要介绍了sql varchar(max)vs varchar(fix)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
每次我混淆选择varchar(max)或varchar(fix)数据类型.假设我有一个大约5000 varchar的数据列.列不是null类型.

我应该设置varchar(max)not null或varchar(5000)not null.

在可以为空的数据类型的情况下也是如此.

CREATE TABLE [dbo].[tblCmsPages](
[CmsPagesID] [int] IDENTITY(1,1) NOT NULL,[PageName] [varchar](250) NOT NULL,[PageContent] [varchar](max) NOT NULL,[Sorting] [int] NOT NULL,[IsActive] [bit] NOT NULL)

//要么

CREATE TABLE [dbo].[tblCmsPages](
[CmsPagesID] [int] IDENTITY(1,[PageContent] [varchar](5000) NOT NULL,[IsActive] [bit] NOT NULL

// [PageContent]将是5000个char或单个char或null然后我应该采取什么.

彼此想我想知道. null和not null之间的主要区别是什么.它仅用于验证检查以及对性能的影响.

@H_301_16@

解决方法

MSDN

>当列数据条目的大小不同时使用varchar
相当.
>当列数据条目的大小变化时,使用varchar(max)
相当大,大小可能超过8,000字节.

如果在声明VARCHAR变量或列中指定了长度,则允许的最大长度为8000.如果长度大于8000,则必须使用MAX说明符作为长度.如果指定的长度大于8000,则会遇到以下错误(假设指定的长度为10000):

The size (10000) given to the type ‘varchar’ exceeds the maximum allowed for any data type (8000).

更新: –
我找到了一个我想分享链接: –

Here

Varchar [(n)]和Varchar(Max)之间没有太大的性能差异.与Varchar(Max)相比,Varchar [(n)]提供了更好的性能结果.如果我们知道要存储在列或变量中的数据小于或等于8000个字符,那么与Varchar(Max)相比,使用此Varchar [(n)]数据类型可提供更好的性能.例如:当我运行以下内容时脚本通过将变量@FirstName类型更改为Varchar(Max)然后为100万个赋值,它始终比我们使用数据类型的时间多一倍

Varchar(50) for variable @ FirstName.
DECLARE @FirstName VARCHAR(50),@COUNT INT=0,@StartTime DATETIME = GETDATE()
WHILE(@COUNT < 1000000)
BEGIN
SELECT @FirstName = 'Suraj',@COUNT = @COUNT +1
END
SELECT DATEDIFF(ms,@StartTime,GETDATE()) 'Time Taken in ms'
GO
@H_301_16@ @H_301_16@

猜你在找的MsSQL相关文章