SQL Server不会打印超过8000个数据长度

时间:2016-06-27 11:41:32

标签: sql-server

以下代码在SQL Server 2012中返回不超过8000个字符。是否有可能打印超过8000个字符的方法

DECLARE @SQL VARCHAR(MAX)
SET @SQL = ''

SELECT @SQL = @SQL + CAST('SELECT * FROM ' + TableName  AS VARCHAR(MAX)) 
  FROM Table1

PRINT(@SQL)

2 个答案:

答案 0 :(得分:0)

尝试:

PRINT SUBSTRING(@SQL,0,8000)
PRINT SUBSTRING(@SQL,8001,8000)
PRINT SUBSTRING(@SQL,16001,8000)

答案 1 :(得分:0)

我认为问题在于您如何插入数据。我能够使用您的代码返回8001个字符,并创建以下表格并插入。

Drop Table #Test
Create Table #Test (Test Varchar(Max))
Insert #Test Values (Convert(Varchar(Max),Space(7999)) + 'xy')

Select * From #Test

DECLARE @TableName VARCHAR(MAX) = '#Test'
DECLARE @SQL VARCHAR(MAX) SET @SQL = ''

SELECT @SQL = @SQL + CAST('SELECT Test FROM ' + @TableName AS VARCHAR(MAX)) FROM #Test

PRINT(@SQL)

注意在插入时如何将值转换为varchar(max)。