【发布时间】:2015-05-12 21:09:28
【问题描述】:
每次我为选择 varchar(max) 或 varchar(fix) 数据类型感到困惑。假设我有一个大约 5000 varchar 的数据列。列不是空类型。
我应该将它设置为 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,1) NOT NULL,
[PageName] [varchar](250) NOT NULL,
[PageContent] [varchar](5000) NOT NULL,
[Sorting] [int] NOT NULL,
[IsActive] [bit] NOT NULL
//[PageContent] 将是 5000 char 或 single char 或 null 那我应该拿什么。
另一个人认为我想知道。 null 和 not null 之间的主要区别是什么。是否仅用于验证检查以及对性能有什么影响。
【问题讨论】:
-
如果我选择 [PageContent] [varchar](5000) NOT NULL 它总是需要 5000 字符,无论是 5000 还是小于 5000。
标签: sql sql-server sql-server-2008