相关疑难解决方法(0)

SELECT FOR XML AUTO并返回数据类型

在玩游戏期间,sys.dm_exec_describe_first_result_set我到达这一点:

CREATE TABLE #tab(col INT, x XML );
INSERT INTO #tab(col,x) VALUES (1,NULL), (2,NULL), (3,'<a>x</a>');

SELECT 'Simple XML' AS description, name, system_type_name
FROM sys.dm_exec_describe_first_result_set(
   N'SELECT col
     FROM #tab
     FOR XML AUTO', NULL, 0)  
UNION ALL
SELECT 'Wrapped with subquery', name, system_type_name
FROM sys.dm_exec_describe_first_result_set(
   N'SELECT(SELECT col
            FROM #tab
            FOR XML AUTO) AS wrapped_subquery', NULL, 0)
UNION ALL 
SELECT 'XML column', name, system_type_name
FROM sys.dm_exec_describe_first_result_set(
   N'SELECT x FROM #tab ', NULL, 0)
UNION ALL
SELECT 'Casted XML', name, system_type_name
FROM …
Run Code Online (Sandbox Code Playgroud)

xml sql t-sql sql-server sql-server-2012

11
推荐指数
1
解决办法
994
查看次数

FOR JSON PATH 导致 SSMS 被截断为 2033 个字符

我正在使用“for JSON path('')”将字符串连接在一起。

我已将 Tools->Options->SQL Server->Results to Grid 选项设置为 max。

我已将 Tools->Options->SQL Server->Results to Text 选项设置为 max。

在网格模式下执行查询并复制一行/一列结果,我看到返回值限制为 2033 个字符。

如何确保返回的值不被截断?

t-sql sql-server ssms

9
推荐指数
4
解决办法
5455
查看次数

SQL Server json被截断(即使使用NVARCHAR(max)时)

DECLARE @result NVARCHAR(max);

SET @result = (SELECT * FROM table
               FOR JSON AUTO, ROOT('Data'))

SELECT @result;
Run Code Online (Sandbox Code Playgroud)

这将返回一个〜43000个字符的json字符串,某些结果将被截断。

SET @result = (SELECT * FROM table
               FOR JSON AUTO, ROOT('Data'))
Run Code Online (Sandbox Code Playgroud)

这将返回约2000个字符的json字符串。有什么方法可以防止任何截断吗?即使在处理一些大数据时,字符串也有数百万个字符?

sql sql-server json

4
推荐指数
7
解决办法
3919
查看次数

标签 统计

sql-server ×3

sql ×2

t-sql ×2

json ×1

sql-server-2012 ×1

ssms ×1

xml ×1