[英]issue with inserting into Temporary table
我有两个表Profile
& TokenState
表,它们由称为TokenStateID smallint
的列TokenStateID smallint
。 TokenState
是一个枚举表,其中每个TokenStateID
都分配给某些TokenState char(2)
明确说明:
CREATE TABLE [AMS_APD].[TokenState]
(
[TokenStateID] SMALLINT NOT NULL,
[TokenState] VARCHAR (2) NOT NULL,
);
我想加入Profile
& TokenState
并通过@ProfileTemp
将结果存储在临时表中
INSERT INTO @ProfileTemp(prof.[Eavtoken], ts.[TokenState])
SELECT
prof.[Eavtoken],
ts.[TokenState]
(SELECT *
FROM [AMS_APD].[Profiles]
WHERE SDHASH1 = @SDHASH1) prof -- @SDHASH1 stored proc. parameter
INNER JOIN [AMS_APD].[TokenState] ts
ON prof.TokenStateID = ts.TokenStateID
问题是在INSERT INTO @ProfileTemp(prof.[Eavtoken], ts.[TokenState])
中抛出异常:
警告SQL71502:过程:[AMS_APO]。[QueryProfileBySDHASH1]具有对对象[@ProfileTemp]。[TokenState]的未解析的引用。
()
的内容应该是您要插入的列名,而不是您要从中获取数据的列名。
INSERT INTO
@ProfileTemp([TokenStateID], [TokenState])
SELECT
prof.[Eavtoken],
ts.[TokenState]
FROM
<etc, etc>
假定您已经使用这些列名创建了一个表变量。
如果要为您创建表,可以像这样创建临时表(与表变量略有不同) ...
SELECT
prof.[Eavtoken] AS TokenStateID,
ts.[TokenState] AS TokenState
INTO
#ProfileTemp
FROM
<etc, etc>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.