Sql SELECT或PRINT语句中可以包含多少字符?
我有一个名为QUERY的varcharmax变量。我在其中存储了大量create查询。它的长度几乎是65000多个字符。但无论何时打印或选择它,它都不会返回整个结果Sql SELECT或PRINT语句中可以包含多少字符?,sql,sql-server,ssms,Sql,Sql Server,Ssms,我有一个名为QUERY的varcharmax变量。我在其中存储了大量create查询。它的长度几乎是65000多个字符。但无论何时打印或选择它,它都不会返回整个结果 DECLARE @QUERY AS VARCHAR(MAX) SET @QUERY=''; //repopulating @QUERY with queries until the lengths reaches more than 65000 //characters, then SELECT LEN(REPLACE(@QUE
DECLARE @QUERY AS VARCHAR(MAX)
SET @QUERY='';
//repopulating @QUERY with queries until the lengths reaches more than 65000
//characters, then
SELECT LEN(REPLACE(@QUERY, 'N', ''))--to check the length
PRINT @QUERY as QUERY --to get the result in print
SELECT @QUERY as QUERY --to get the result in select
我怎样才能得到我的全部结果?所有这些工作都是在存储过程中完成的。这个过程的结果应该是select语句中的一系列查询。Try
PRINT CAST(@QUERY AS NTEXT)
最新版本的Microsoft SQL Server中已删除了ntext、text和image数据类型。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序
您可以根据脚本长度的计数除以8000来执行WHILE循环
例如:
对于Unicode字符串,返回4000个字符;对于非Unicode字符串,返回8000个字符。看来你是对的,我终于自己复制了它。对于SQL Server来说,这是一个多么不寻常的功能。它可以正常工作,但是在获得输出后,重新加入它并作为查询执行会产生错误。
DECLARE @Counter INT
SET @Counter = 0
DECLARE @TotalPrints INT
SET @TotalPrints = (LEN(@QUERY) / 8000) + 1
WHILE @Counter < @TotalPrints
BEGIN
-- Do your printing...
SET @Counter = @Counter + 1
END