gpt4 book ai didi

sql varchar(max) 与 varchar(fix)

转载 作者:行者123 更新时间:2023-12-02 09:57:25 29 4
gpt4 key购买 nike

每次我对选择 varchar(max) 或 varchar(fix) 数据类型感到困惑。假设我有一个大约 5000 个 varchar 的数据列。列不是 null 类型。

我应该将其设置为 varchar(max) 不为空还是 varchar(5000) 不为空。

对于可为空的数据类型也是如此。

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,1) NOT NULL,
[PageName] [varchar](250) NOT NULL,
[PageContent] [varchar](5000) NOT NULL,
[Sorting] [int] NOT NULL,
[IsActive] [bit] NOT NULL

//[PageContent] 将是 5000 个字符或单个字符或 null 那么我应该采取什么。

另一个我想知道。 nullnot null 之间的主要区别是什么。是否仅用于验证检查以及对性能有何影响。

最佳答案

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) 变量 @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

关于sql varchar(max) 与 varchar(fix),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28980502/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com