Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SELECT或PRINT语句中可以包含多少字符?_Sql_Sql Server_Ssms - Fatal编程技术网

Sql SELECT或PRINT语句中可以包含多少字符?

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

我有一个名为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(@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