有没有办法从SQL服务器获取大量JSON?

Is there a way to get a large amount of JSON from SQL Server?

我正在尝试从 Microsoft SQL 服务器中获取 JSON,为了与我的 ASP.NET 核心后端通信,我似乎只能使用 max NVARCHAR 允许的大小,最多 8,000 个字符。但是我需要抓取一个 JSON.

几万个字符的列表
var @params = new SqlParameter[] {
            new SqlParameter("@returnVal", System.Data.SqlDbType.NVarChar, 8000) { Direction = System.Data.ParameterDirection.Output },
            new SqlParameter("@ID", libraryID)
};

await this.Database.ExecuteSqlCommandAsync("SET @returnVal = (SELECT * FROM Rates WHERE LibraryID=@ID FOR JSON AUTO)", @params);
return @params[0].Value as string;

我希望上述代码的输出为 8,000 个字符,因为这似乎是一个 SQL 限制。有办法找回所有数据吗?

我的目标是尝试从数据库下载大量数据,如 JSON,而无需将其映射到 POCO,然后使用第三方 JSON 库将其序列化。

谢谢!

如果可能,请更改您的字段类型and/or 使用正确的ADO.NET 参数类型来绑定数据。

传统上我会使用 TEXT 类型,但现在已弃用,因此您可以使用:

NVARCHAR(MAX)

SQL 服务器 NVARCHAR(MAX) 数据类型最多可存储 2GB。

您应该将 NVarChar 的大小设置为 -1:

new SqlParameter("@returnVal", System.Data.SqlDbType.NVarChar, -1)