Yah, saya tidak tahu apa kepanjangan dari ST, tetapi berdasarkan konvensi penamaan saya harus menebak itu semacam statistik yang dihasilkan sistem.
Anda dapat memeriksa untuk melihat apakah ada, semacam teks yang terkait dengan objek jika itu adalah modul, misalnya:
SELECT OBJECT_DEFINITION(613577224);
SELECT definition FROM sys.all_sql_modules
WHERE object_id = 613577224;
Anda juga dapat mencoba:
EXEC sp_help N'dbo._ST_OEA33...';
Akhirnya, Anda dapat mencoba secara paksa menemukan objek ini di salah satu tampilan katalog. Skrip ini mencoba menemukan tampilan yang berisi baris di mana object_id
kolom sama dengan nilai itu.
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;
Jika ini tidak menghasilkan apa-apa, Anda dapat mengembangkannya untuk menyertakan semua int
kolom berbasis di semua tampilan katalog, karena kadang-kadang object_id
nilai disimpan dalam kolom dengan nama yang berbeda, seperti referenced_major_id
atau parent_object_id
, dan hasil apa pun di sini mungkin menghasilkan petunjuk juga.
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;