Eh bien, je ne sais pas ce que ST représente, mais d'après la convention de dénomination, je devrais deviner que c'est une sorte de statistique générée par le système.
Vous pouvez vérifier s'il existe, par hasard, une sorte de texte associé à l'objet s'il s'agit d'un module, par exemple:
SELECT OBJECT_DEFINITION(613577224);
SELECT definition FROM sys.all_sql_modules
WHERE object_id = 613577224;
Vous pouvez également essayer:
EXEC sp_help N'dbo._ST_OEA33...';
Enfin, vous pouvez essayer de forcer la découverte de cet objet dans l'une des vues de catalogue. Ce script essaie de trouver n'importe quelle vue contenant une ligne où la object_id
colonne est égale à cette valeur.
CREATE TABLE #v(v sysname);
DECLARE @sql nvarchar(max) = N'', @obj int = 613577224;
SELECT @sql += N'INSERT #v
SELECT DISTINCT ''sys.' + name + N'''
FROM sys.' + QUOTENAME(name) + N'
WHERE [object_id] = @obj;'
FROM sys.all_views AS v
WHERE EXISTS
(
SELECT 1
FROM sys.all_columns AS c
WHERE c.name = N'object_id'
AND c.[object_id] = v.[object_id]
);
EXEC sys.sp_executesql @sql, N'@obj int', @obj;
SELECT v FROM #v;
DROP TABLE #v;
Si cela ne donne rien, vous pouvez l'étendre pour inclure toutes les int
colonnes basées sur toutes les vues de catalogue, car parfois les object_id
valeurs sont stockées dans des colonnes avec des noms différents, comme referenced_major_id
ou parent_object_id
, et tous les résultats ici peuvent également fournir des indices.
SET NOCOUNT ON;
CREATE TABLE #v(v sysname);
DECLARE @sql nvarchar(max) = N'', @obj int = 613577224;
SELECT @sql += N'INSERT #v
SELECT DISTINCT ''sys.' + v.name + N'''
FROM sys.' + QUOTENAME(v.name) + N'
WHERE ' + QUOTENAME(c.name) + N' = @obj;'
FROM sys.all_views AS v
INNER JOIN sys.all_columns AS c
ON v.[object_id] = c.[object_id]
WHERE v.[schema_id] = 4
AND c.[system_type_id] IN (56,127)
AND v.name NOT IN (N'syscolumns')
AND v.name NOT LIKE N'dm_fts_%';
EXEC sys.sp_executesql @sql, N'@obj int', @obj;
SELECT v FROM #v;
GO
DROP TABLE #v;