除了将 [RepairLevel] 列为 int 的 SQL Server 2017 表结构之外,我找不到任何其他内容,而在 SQL Server 2019 中则不是,它是一个字符串,如果我将其设置为 varchar(7000),则与MessageText 然后就可以了,但是谁能告诉我整个表的确切数据类型?如果有官方消息来源就太好了。
到目前为止我有这个:
CREATE TABLE #errormsgs
(
[Error] int NULL,
[Level] int NULL,
[State] int NULL,
[MessageText] varchar(7000) NULL,
[RepairLevel] varchar(7000) NULL,
[Status] int NULL,
[Dbid] int NULL,
[DbFragId] int NULL,
[ObjectId] int NULL,
[IndexId] int NULL,
[PartitionId] int NULL,
[AllocUnitId] int NULL,
[RidDbId] int NULL,
[RidPruId] int NULL,
[File] int NULL,
[Page] int NULL,
[Slot] int NULL,
[RefDbId] int NULL,
[RefPruId] int NULL,
[RefFile] int NULL,
[RefPage] int NULL,
[RefSlot] int NULL,
[Allocation] int NULL,
)
为了填充我使用
dbcc checkdb (DBName) with no_infomsgs,all_errormsgs,tableresults
RepairLevel
是nvarchar(22)
根据GetSchemaTable
此 PS 脚本返回的。我在 SQL Server 2012 及更高版本上看到了同样的情况。SQL 2019 结果:
该
TABLERESULTS
选项似乎没有记录,DBCC CHECKDB
因此使用风险需您自担。