Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在子查询中引用临时表?_Sql_Sql Server_Sql Server 2008 R2_Sql Update - Fatal编程技术网

Sql 如何在子查询中引用临时表?

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

我在一个存储过程中有一个局部表变量,包含两列;我需要使用基于该行第1列的值的子查询结果更新每行的第2列

比如:

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)