与使用普通表的方法相同。请记住,临时表位于 tempdb 中。即,使用该OBJECT_ID()函数获取临时表的 ID 并使用 tempdb 限定临时表的数据库名称,如下所示:
SELECT OBJECT_ID('tempdb..#myTemp')
这是一个完整的例子:
USE Adventureworks
GO
CREATE OR ALTER PROC p
AS
SET NOCOUNT ON
CREATE TABLE #myTemp (c1 int identity, filler varchar(200))
--Populate the temp table
INSERT INTO #myTemp (filler) SELECT TOP(10000) 'a' FROM sys.all_columns AS a, sys.all_columns AS b
--Generate some fwd records
UPDATE #myTemp SET filler = REPLICATE('s', 190) WHERE c1 % 2 = 1
--Fyi, get the ID of a temp table
SELECT OBJECT_ID('tempdb..#myTemp') AS id_of_the_temptable
--Get the forwarded record count for our table table
SELECT forwarded_record_count FROM sys.dm_db_index_physical_stats(DB_ID('tempdb'), OBJECT_ID('tempdb..#myTemp'), NULL, NULL, 'DETAILED')
GO
--Run the proc
EXEC p
与使用普通表的方法相同。请记住,临时表位于 tempdb 中。即,使用该
OBJECT_ID()
函数获取临时表的 ID 并使用 tempdb 限定临时表的数据库名称,如下所示:这是一个完整的例子: