我想要实现:
declare @TEMP table (ID int, Name varchar(max))
insert into @temp SELECT ID, Name FROM Table
SELECT * FROM @TEMP
WHERE @TEMP.ID = 1 <--- ERROR AT @TEMP.ID
Run Code Online (Sandbox Code Playgroud)
但是出现了错误
必须声明标量变量"@temp".
任何帮助?
Gor*_*off 51
表别名不能以a开头@
.所以,给@Temp
另一个别名(或完全省略两部分命名):
SELECT *
FROM @TEMP t
WHERE t.ID = 1;
Run Code Online (Sandbox Code Playgroud)
此外,传统上在SQL中使用单个等号来进行比较.
Gia*_*los 16
在表格中使用Allias并使用T.ID,或仅使用列名称.
declare @TEMP table (ID int, Name varchar(max))
insert into @temp SELECT ID, Name FROM Table
SELECT * FROM @TEMP
WHERE ID = 1
Run Code Online (Sandbox Code Playgroud)
小智 11
还有一种临时表的方法
create table #TempTable (
ID int,
name varchar(max)
)
insert into #TempTable (ID,name)
Select ID,Name
from Table
SELECT *
FROM #TempTable
WHERE ID = 1
Run Code Online (Sandbox Code Playgroud)
确定您正在选择正确的数据库.
如果您将@括起来,可以直接使用它
declare @TEMP table (ID int, Name varchar(max))
insert into @temp values (1,'one'), (2,'two')
SELECT * FROM @TEMP
WHERE [@TEMP].[ID] = 1
Run Code Online (Sandbox Code Playgroud)