查找 Temp table 的列名称
Find the column names of Temp table
我需要找到 temp table 的 列名称 。
如果它是物理的 table 那么我们可以使用 sys.columns
或 Information_schema.columns
系统视图来查找列名。
同样,有没有一种方法可以找到 temp table 中存在的列名?
SELECT *
FROM tempdb.sys.columns
WHERE object_id = Object_id('tempdb..#sometemptable');
要仅获取列名称,您可以使用以下查询:
SELECT *
FROM tempdb.sys.columns
WHERE [object_id] = OBJECT_ID(N'tempdb..#temp');
要获取具有数据类型的列名,您可以使用此查询,但您需要确保 sp_help 在 table 所在的同一数据库 (tempdb) 中运行。
EXEC tempdb.dbo.sp_help @objname = N'#temp';
你可以像下面这样加入对抗 tempdb.sys.columns 来获得相同的结果:
SELECT [column] = c.name,
[type] = t.name, c.max_length, c.precision, c.scale, c.is_nullable
FROM tempdb.sys.columns AS c
INNER JOIN tempdb.sys.types AS t
ON c.system_type_id = t.system_type_id
AND t.system_type_id = t.user_type_id
WHERE [object_id] = OBJECT_ID(N'tempdb.dbo.#temp');
我需要找到 temp table 的 列名称 。
如果它是物理的 table 那么我们可以使用 sys.columns
或 Information_schema.columns
系统视图来查找列名。
同样,有没有一种方法可以找到 temp table 中存在的列名?
SELECT *
FROM tempdb.sys.columns
WHERE object_id = Object_id('tempdb..#sometemptable');
要仅获取列名称,您可以使用以下查询:
SELECT *
FROM tempdb.sys.columns
WHERE [object_id] = OBJECT_ID(N'tempdb..#temp');
要获取具有数据类型的列名,您可以使用此查询,但您需要确保 sp_help 在 table 所在的同一数据库 (tempdb) 中运行。
EXEC tempdb.dbo.sp_help @objname = N'#temp';
你可以像下面这样加入对抗 tempdb.sys.columns 来获得相同的结果:
SELECT [column] = c.name,
[type] = t.name, c.max_length, c.precision, c.scale, c.is_nullable
FROM tempdb.sys.columns AS c
INNER JOIN tempdb.sys.types AS t
ON c.system_type_id = t.system_type_id
AND t.system_type_id = t.user_type_id
WHERE [object_id] = OBJECT_ID(N'tempdb.dbo.#temp');