Sql server 存储过程中用作局部变量的最大数据类型是什么?

Sql server 存储过程中用作局部变量的最大数据类型是什么?,sql-server,text,asp-classic,procedure,nvarchar,Sql Server,Text,Asp Classic,Procedure,Nvarchar,我有下一期: --DECLARE @TEST NVARCHAR(MAX) --DECLARE @TEST2 NVARCHAR(MAX) DECLARE @TEST NTEXT DECLARE @TEST2 NTEXT NVARCHAR(MAX)对于执行存储过程时需要放入的文本量来说太小了,而且,text、NTEXT和IMAGE数据类型对于局部变量无效,我可以做些什么来避免这个问题并像这样存储过大的文本 提前谢谢 NVARCHAR(MAX)对于执行存储过程时需要放入的文本量来说太小了 好吧,坏

我有下一期:

--DECLARE @TEST NVARCHAR(MAX)
--DECLARE @TEST2 NVARCHAR(MAX)

DECLARE @TEST NTEXT
DECLARE @TEST2 NTEXT
NVARCHAR(MAX)对于执行存储过程时需要放入的文本量来说太小了,而且,text、NTEXT和IMAGE数据类型对于局部变量无效,我可以做些什么来避免这个问题并像这样存储过大的文本

提前谢谢

NVARCHAR(MAX)
对于执行存储过程时需要放入的文本量来说太小了

好吧,坏消息:这是可用的最大数据类型!2GB的存储空间,再没有比这个容量更大的了。事实上,所有大型类型都具有相同的大小:VARCHAR(MAX)、NVARCHAR(MAX)、VARBINARY(MAX):它们都具有2GB的最大大小(附带说明,不推荐使用的旧类型具有完全相同的最大大小)。只有FILESTREAM可以超过此大小,但不能将变量声明为FILESTREAM


因此,这就引出了一个问题:在存储过程中向变量中添加+2GB的数据到底是怎么回事?你不可能有一个合理的理由,所以你应该重新考虑你的方法。使用磁盘,卢克,不要使用内存!考虑一个@表变量或一个临时表……< /p> nvARCHAR(max)是2GB;如果您真的需要存储更多的内容,那么应该将其拆分并存储到多行
nvarchar(max)
允许的内容多达
NTEXT
。大概您认为最大值是
8000
bytes?
NVARCHAR(max)
=2GB数据,即10亿个字符。这是托尔斯泰的战争与和平超过100倍!这对我来说还不够大-你到底在数据库中存储了什么?????问题是我必须返回一个特定的案例,asp页面中的4500行,它会冻结。。。