簡體   English   中英

在SQL Server中使用表變量

[英]Using a table variable in SQL Server

我為表變量設計了一個小查詢。 這是代碼:

DECLARE @TESTTABLE TABLE (ID INT, NAME VARCHAR(40))

INSERT INTO @TESTTABLE 
VALUES (1, 'WALLEY'), (2, 'BARRY'), (3, 'TIM'),
       (4, 'DICK'), (5, 'BRUCE')

我的問題是SQL允許使用表變量的別名,如下面的查詢。

SELECT * 
FROM @TESTTABLE t 
INNER JOIN EMPLOYEE_DETAILS ON t.ID = BusinessEntityID

但是你不能使用如下的實際表變量名:

SELECT * 
FROM @TESTTABLE 
INNER JOIN EMPLOYEE_DETAILS ON @TESTTABLE.ID = BusinessEntityID

以上查詢顯示錯誤。

有沒有人有這個答案? 會非常有幫助的。

在T-SQL中,您需要在連接變量表時使用別名。

參考: https//odetocode.com/articles/365.aspx (參見章節:限制)

它應該給你這樣的東西:

SELECT * 
FROM @TESTTABLE tt 
INNER JOIN EMPLOYEE_DETAILS emp_d 
ON tt.ID = emp_d.BusinessEntityID

使用“[..]”引用表變量的名稱。 這對我有用:

SELECT * 
FROM @TESTTABLE INNER JOIN 
     EMPLOYEE_DETAILS
     ON [@TESTTABLE].ID = BusinessEntityID

也就是說,我可能更喜歡使用別名,或者只是使用CTE並完全放棄表變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM