在 MS SQL Server 2005 中,表值变量的内部名称是由 SQL Server 自动生成的。但是,在开发过程中,你可能需要了解表的内部名称来确定 SQL 查询的准确性。
如果你需要在查询中显示表值的内部名称,则需要使用表级别的系统视图。以下是一些查询示例:
SELECT t.name AS TableName,
sv.[name] AS TableVariableName
FROM sys.tables t
INNER JOIN sys.internal_tables it ON t.object_id = it.object_id
INNER JOIN sys.sql_modules sm ON t.object_id = sm.object_id
INNER JOIN sys.source_schema_dependencies sdc ON sm.object_id = sdc.object_id
INNER JOIN sys.sequences seq ON t.object_id = seq.object_id
INNER JOIN sys.data_spaces ds ON seq.data_space_id = ds.data_space_id
INNER JOIN user_source us ON t.object_id = us.object_id
INNER JOIN sys.variables sv ON t.object_id = sv.object_id
WHERE it.internal_type = 'U'
AND sm.[definition] LIKE '%TABLE%'
AND sv.name <> '__first_temp_table__'
以上查询使用了表级的系统视图,可以帮助你了解表变量的内部名称,并在 SQL 查询中使用这些内部名称。你还可以使用这些视图来查询表变量的创建时间和创建过程等信息。
领取专属 10元无门槛券
手把手带您无忧上云