在MSSQL中,如果您创建NVARCHAR(MAX)类型的列,并且在其中仅填充128个字符-它是否比将其创建为NVARCHAR(128)时消耗更多的存储空间?或者它的大小相同?] >
在MSSQL中,如果您创建NVARCHAR(MAX)类型的列,并且在其中仅填充128个字符-它是否比将其创建为NVARCHAR(128)时消耗更多的存储空间?或者它的大小相同?] >
我做了一个小实验,使用下面的代码创建2个表,并用同样随机的128个字符填充它:
CREATE TABLE dbo.MyTextFix (
[val] NVARCHAR(128) NOT NULL
)
CREATE TABLE dbo.MyTextMax (
[val] NVARCHAR(MAX) NOT NULL
)
SET NOCOUNT ON;
DECLARE @COUNT INT = 0
WHILE (@COUNT <= 100000)
BEGIN
DECLARE @VAL NVARCHAR(128) = CAST(NEWID() AS NVARCHAR(128)) + '-' + CAST(NEWID() AS NVARCHAR(128)) + '-' + CAST(NEWID() AS NVARCHAR(128)) + '-' + CAST(NEWID() AS NVARCHAR(128))
INSERT INTO dbo.MyTextFix ([val]) VALUES (@VAL)
INSERT INTO dbo.MyTextMax ([val]) VALUES (@VAL)
SET @COUNT = @COUNT + 1
END