Sql 如何在子查询中引用临时表?
我在一个存储过程中有一个局部表变量,包含两列;我需要使用基于该行第1列的值的子查询结果更新每行的第2列 比如:Sql 如何在子查询中引用临时表?,sql,sql-server,sql-server-2008-r2,sql-update,Sql,Sql Server,Sql Server 2008 R2,Sql Update,我在一个存储过程中有一个局部表变量,包含两列;我需要使用基于该行第1列的值的子查询结果更新每行的第2列 比如: UPDATE @mytable SET column2 = (SELECT ... FROM ... WHERE something = @mytable.column1) 但这似乎不起作用,我得到一个关于@mytable未定义的错误 此查询的正确语法是什么?是否尝试使用别名 UPDATE temp SET temp.column2 = (SELECT ... FROM ... W
UPDATE @mytable
SET column2 = (SELECT ... FROM ... WHERE something = @mytable.column1)
但这似乎不起作用,我得到一个关于@mytable未定义的错误
此查询的正确语法是什么?是否尝试使用别名
UPDATE temp
SET temp.column2 = (SELECT ... FROM ... WHERE something = temp.column1)
FROM @mytable temp
你把这份声明称为什么?从存储过程内部?是的。temp table和语句都在同一SP中。@不表示temp table,它表示table类型的变量。#用于临时表(#mytable)。它需要是@mytable tempUPDATE temp SET temp.column2=(选择…FROM…,其中something=temp.column1)