如何在 SQL 脚本的 JSON 输出中从数据库中获取所有 table 计数
How to get all table counts from database in JSON output in TSQL script
我想要一个 TSQL 脚本来将所有 table 计数从 SQL 服务器数据库输出到 JSON 文件。获得 table 计数不是问题,但将其输出到 JSON 才是问题所在。我无法让它工作。
这就是我必须得到的 table 计数:
USE databasename
GO
SELECT
QUOTENAME(SCHEMA_NAME(sOBJ.schema_id)) + '.' + QUOTENAME(sOBJ.name) AS [TableName]
, SUM(sPTN.Rows) AS [RowCount]
FROM
sys.objects AS sOBJ
INNER JOIN sys.partitions AS sPTN
ON sOBJ.object_id = sPTN.object_id
WHERE
sOBJ.type = 'U'
AND sOBJ.is_ms_shipped = 0x0
AND index_id < 2 -- 0:Heap, 1:Clustered
GROUP BY
sOBJ.schema_id
, sOBJ.name
ORDER BY [TableName]
GO
如何将结果输出到JSON?
要将简单的结果集转换为 Json,请将 for json auto
添加到语句的末尾,例如,
...GROUP BY
sOBJ.schema_id
, sOBJ.name
ORDER BY [TableName]
FOR JSON AUTO
我想要一个 TSQL 脚本来将所有 table 计数从 SQL 服务器数据库输出到 JSON 文件。获得 table 计数不是问题,但将其输出到 JSON 才是问题所在。我无法让它工作。
这就是我必须得到的 table 计数:
USE databasename
GO
SELECT
QUOTENAME(SCHEMA_NAME(sOBJ.schema_id)) + '.' + QUOTENAME(sOBJ.name) AS [TableName]
, SUM(sPTN.Rows) AS [RowCount]
FROM
sys.objects AS sOBJ
INNER JOIN sys.partitions AS sPTN
ON sOBJ.object_id = sPTN.object_id
WHERE
sOBJ.type = 'U'
AND sOBJ.is_ms_shipped = 0x0
AND index_id < 2 -- 0:Heap, 1:Clustered
GROUP BY
sOBJ.schema_id
, sOBJ.name
ORDER BY [TableName]
GO
如何将结果输出到JSON?
要将简单的结果集转换为 Json,请将 for json auto
添加到语句的末尾,例如,
...GROUP BY
sOBJ.schema_id
, sOBJ.name
ORDER BY [TableName]
FOR JSON AUTO