Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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 server 即使nvarchar(最大值)被截断的字符串_Sql Server_Sql Server 2014 - Fatal编程技术网

Sql server 即使nvarchar(最大值)被截断的字符串

Sql server 即使nvarchar(最大值)被截断的字符串,sql-server,sql-server-2014,Sql Server,Sql Server 2014,我有以下资料: IF OBJECT_ID('tempdb..#Columns', N'U') IS NOT NULL DROP TABLE #Columns CREATE TABLE #Columns (column_name nvarchar(max)) DECLARE @TableName nvarchar(100) SET @TableName = 'mytable' INSERT INTO #Columns SELECT 'd.' + column_name + ' as '''

我有以下资料:

IF OBJECT_ID('tempdb..#Columns', N'U') IS NOT NULL DROP TABLE #Columns
CREATE TABLE #Columns (column_name nvarchar(max))

DECLARE @TableName nvarchar(100)
SET @TableName = 'mytable'

INSERT INTO #Columns 
SELECT 'd.' + column_name + ' as ''' +  column_name + '/old'', i.' + column_name + ' as ''' + column_name + '/new'''
FROM INFORMATION_SCHEMA.COLUMNS
WHERE 
    table_name = @TableName AND
    data_type <> 'text' AND
    data_type <> 'varbinary' AND
    data_type <> 'image'
ORDER BY 
    ordinal_position

DECLARE @string nvarchar(max)

SELECT @string = COALESCE(@string + ', ', '') + column_name
FROM #columns

PRINT len(@string)
PRINT @string
我有一个超过100列的表格。以上内容将截断我的@string,其长度约为10500


为什么即使我使用nvarcharmax,字符串也会被截断?避免这种截断的正确方法是什么len@string显示正确的长度?如果是这样的话,PRINT@string就是问题所在。打印最多只能输出4000个字符

试一试


以将结果输出为未被截断的行。

进行打印len@string显示正确的长度?如果是这样的话,PRINT@string就是问题所在。打印最多只能输出4000个字符

试一试


以将结果输出为未被截断的行。

字符串未被截断。studio管理仅显示前4000个字符。字符串未被截断。工作室管理层只显示前4000个字符。是的,这是真的。print语句不会发出完整的字符串。你应该使用Select语句..是的,这是真的。print语句不会发出完整的字符串。您应该使用Select语句。。
SELECT @string