以下代码在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)
答案 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)。