2017-04-09 84 views
0

我想包括一個聲明語句引用臨時表與其他聲明語句。它適用於自己的,但是當我加入剩餘的聲明條款,我得到一個錯誤......多個聲明語句與一個創建臨時表

declare @meas_enddate datetime, 
@meas_startdate datetime, 
@enc_startdate  
datetime, 
@enc_enddate datetime, 
@activestart datetime, 
@activeend datetime, 
@baseline_start datetime, 
@baseline_end datetime, 
@Dept as Table (DEPARTMENT_ID numeric(18,0) NOT NULL PRIMARY KEY, 
UNIQUE NONCLUSTERED (DEPARTMENT_ID)) 
INSERT INTO @Dept 
SELECT 
'100501201' 
UNION SELECT '100208501' 
UNION SELECT '100302304'... 
+1

你不能前面delcare。表變量需要單獨聲明。 –

回答

0

試表分隔條件變量創建像下面

declare @id1 int 
declare @id table 

(
id int 
) 
select * from @id 

,而不是

declare @id1 int, 
@id table 

(
id int 
) 
select * from @id 

這已在文檔中提及:DECLARE (Transact-SQL)

聲明表變量時,表變量必須是在DECLARE語句中聲明的唯一變量。

+0

當我這樣做,它告訴我,第一個必須聲明,因爲它只讀取第二個聲明子句 – agalgay

+0

現在看我的更新 – TheGameiswar

+0

所以,換句話說,它不能與其他聲明語句? – agalgay

0

試試這個通知@baseline_end分號後和@Dept

declare @meas_enddate datetime, 
@meas_startdate datetime, 
@enc_startdate datetime, 
@enc_enddate datetime, 
@activestart datetime, 
@activeend datetime, 
@baseline_start datetime, 
@baseline_end datetime; 
declare @Dept as Table (DEPARTMENT_ID numeric(18,0) NOT NULL PRIMARY KEY, 
UNIQUE NONCLUSTERED (DEPARTMENT_ID)) 
INSERT INTO @Dept 
SELECT 
'100501201' 
UNION SELECT '100208501' 
UNION SELECT '100302304' 
+0

什麼是選擇*從@dept爲? – agalgay

+0

噢,我只是這樣做,當我嘗試它時看到插入的行。我將刪除它。 – Jason