在玩游戏期间,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) 我正在使用“for JSON path('')”将字符串连接在一起。
我已将 Tools->Options->SQL Server->Results to Grid 选项设置为 max。
我已将 Tools->Options->SQL Server->Results to Text 选项设置为 max。
在网格模式下执行查询并复制一行/一列结果,我看到返回值限制为 2033 个字符。
如何确保返回的值不被截断?
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字符串。有什么方法可以防止任何截断吗?即使在处理一些大数据时,字符串也有数百万个字符?