SQL Server 2008 R2中定义Nvarchar(max)列的限制是什么?
我看到了这个链接 但是,我想知道一张表中nvarchar(max)列的限制数量。
我看到了这个链接 但是,我想知道一张表中nvarchar(max)列的限制数量。
1024 非稀疏。
30000 稀疏。
列的 NVARCHAR(MAX)
没有什么特殊之处。您将无法创建一个包含那么多非空值的行,但这是一个不同的话题。
我同意@RemusRusanu和GordonLinoff的观点。
您可以使用以下查询来创建一个具有1024个nvarchar(Max)列的表:
CREATE Proc [dbo].[CreateTable_NvarcharMax]
(@TableName nvarchar(100),@NumofCols int)
AS
BEGIN
DECLARE @i INT
DECLARE @MAX INT
DECLARE @SQL VARCHAR(MAX)
DECLARE @j VARCHAR(10)
DECLARE @len int
SELECT @i=1
SELECT @MAX=@NumofCols
SET @SQL='CREATE TABLE ' + @TableName + '('
WHILE @i<=@MAX
BEGIN
select @j= cast(@i as varchar)
SELECT @SQL= @SQL+'X'+@j +' NVARCHAR(Max) , '
SET @i = @i + 1
END
select @len=len(@SQL)
select @SQL = substring(@SQL,0,@len-1)
SELECT @SQL= @SQL+ ' )'
exec (@SQL)
END
GO
exec [dbo].[CreateTable_NvarcharMax] 'Test', 1024
Warning: The table "Test" has been created, but its maximum row size exceeds the allowed maximum of 8060 bytes. INSERT or UPDATE to this table will fail if the resulting row exceeds the size limit.