比较几种字符串类型

关于VARCHAR,CHAR,NVARCHAR对于占用空间的比较

CREATE TABLE #M(C1 VARCHAR(40),C2 VARCHAR(40),C3 VARCHAR(40),C4 VARCHAR(40))
CREATE TABLE #M1(C1 VARCHAR(1000),C2 VARCHAR(1000),C3 VARCHAR(1000),C4 VARCHAR(1000))
CREATE TABLE #M1_1(C1 CHAR(1000),C2 CHAR(1000),C3 CHAR(1000),C4 CHAR(1000))
CREATE TABLE #M2(C1 NVARCHAR(1000),C2 NVARCHAR(1000),C3 NVARCHAR(1000),C4 NVARCHAR(1000))
SET NOCOUNT ON
INSERT #M
SELECT NEWID(),NEWID(),NEWID(),NEWID()
GO 10000
INSERT #M1
SELECT NEWID(),NEWID(),NEWID(),NEWID()
GO 10000
INSERT #M1_1
SELECT NEWID(),NEWID(),NEWID(),NEWID()
GO 10000
INSERT #M2
SELECT NEWID(),NEWID(),NEWID(),NEWID()
GO 10000
USE tempdb
SP_SPACEUSED #M
GO
SP_SPACEUSED #M1
GO SP_SPACEUSED #M2
GO
SP_SPACEUSED #M1_1
 

 

结论:由于VARCHAR是可以伸缩的,所以不管给它设置多宽,占用空间应该都是一样的,Nvarchar约等于VARCHAR的2倍,而CHAR明显是占用更多空间

原文地址:https://www.cnblogs.com/ziqiumeng/p/11007777.html