Chà, tôi không biết ST là viết tắt của từ gì, nhưng dựa trên quy ước đặt tên, tôi sẽ phải đoán nó là một dạng thống kê do hệ thống tạo ra.
Bạn có thể kiểm tra xem liệu có tình cờ, một số loại văn bản được liên kết với đối tượng nếu đó là một mô-đun, ví dụ:
SELECT OBJECT_DEFINITION(613577224);
SELECT definition FROM sys.all_sql_modules
WHERE object_id = 613577224;
Bạn cũng có thể thử:
EXEC sp_help N'dbo._ST_OEA33...';
Cuối cùng, bạn có thể cố gắng vũ phu khám phá đối tượng này trong bất kỳ chế độ xem danh mục nào. Tập lệnh này cố gắng tìm bất kỳ chế độ xem nào chứa một hàng trong đó object_id
cột bằng giá trị đó.
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;
Nếu điều này không mang lại kết quả gì, bạn có thể mở rộng nó để bao gồm các int
cột dựa trên tất cả các chế độ xem danh mục, vì đôi khi object_id
các giá trị được lưu trữ trong các cột có tên khác nhau, như referenced_major_id
hoặc parent_object_id
, và bất kỳ kết quả nào ở đây cũng có thể mang lại manh mối.
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;