无效的对象名称 ##Temp 创建全局临时文件时出错 table
Invalid Object name ##Temp Error when creating a global temporary table
我有几个 table 中的数据,我想加载到 SQL 服务器中的临时 table。
我正在创建一个从 table 中获取数据的存储过程。然后我创建全局临时 table 并将存储过程的结果插入其中。
然而,当尝试 select 来自临时 table 的数据时,我收到此错误
'Invalid object name ##Temp'
如果它是全局临时文件,为什么我会收到此错误 table?
DROP PROCEDURE usp_GetEmp
GO
CREATE PROCEDURE usp_GetEmp
AS
BEGIN
SELECT table1.id AS Id
, table2.data AS table2_value
FROM table1 INNER JOIN table2
ON table1.id = table2.table1_id
WHERE table2.data = 1
END
CREATE TABLE ##Temp
( Id Int
, Value varchar(50))
INSERT INTO ##Temp
EXEC usp_GetEmp
GO
SELECT *
FROM ##Temp
试试
DROP PROCEDURE USP_GETEMP
GO
CREATE PROCEDURE USP_GETEMP
AS
BEGIN
SELECT
TABLE1.ID AS ID
,TABLE2.DATA AS TABLE2_VALUE
FROM TABLE1 INNER JOIN TABLE2
ON TABLE1.ID = TABLE2.TABLE1_ID
WHERE TABLE2.DATA = 1
END
GO
IF OBJECT_ID('TEMPDB.DBO.##TEMP') IS NOT NULL
DROP TABLE ##TEMP
GO
CREATE TABLE ##TEMP
( ID INT
, VALUE VARCHAR(50))
INSERT INTO ##TEMP
EXEC USP_GETEMP
GO
SELECT *
FROM ##TEMP
我有几个 table 中的数据,我想加载到 SQL 服务器中的临时 table。
我正在创建一个从 table 中获取数据的存储过程。然后我创建全局临时 table 并将存储过程的结果插入其中。
然而,当尝试 select 来自临时 table 的数据时,我收到此错误 'Invalid object name ##Temp'
如果它是全局临时文件,为什么我会收到此错误 table?
DROP PROCEDURE usp_GetEmp
GO
CREATE PROCEDURE usp_GetEmp
AS
BEGIN
SELECT table1.id AS Id
, table2.data AS table2_value
FROM table1 INNER JOIN table2
ON table1.id = table2.table1_id
WHERE table2.data = 1
END
CREATE TABLE ##Temp
( Id Int
, Value varchar(50))
INSERT INTO ##Temp
EXEC usp_GetEmp
GO
SELECT *
FROM ##Temp
试试
DROP PROCEDURE USP_GETEMP
GO
CREATE PROCEDURE USP_GETEMP
AS
BEGIN
SELECT
TABLE1.ID AS ID
,TABLE2.DATA AS TABLE2_VALUE
FROM TABLE1 INNER JOIN TABLE2
ON TABLE1.ID = TABLE2.TABLE1_ID
WHERE TABLE2.DATA = 1
END
GO
IF OBJECT_ID('TEMPDB.DBO.##TEMP') IS NOT NULL
DROP TABLE ##TEMP
GO
CREATE TABLE ##TEMP
( ID INT
, VALUE VARCHAR(50))
INSERT INTO ##TEMP
EXEC USP_GETEMP
GO
SELECT *
FROM ##TEMP