2014-04-30 33 views
0

這與我以前的問題有關。我正在運行一個exec語句,如下所示,並且在'+ @ dbname +'附近出現錯誤語法錯誤。任何幫助是極大的讚賞。謝謝。EXEC中的簡單SQL引發錯誤

exec(' 
declare @dbname nvarchar(100) 
set @dbname = ''HUM_FM_1_SYNTQ_TEST'' 

select @dbname 

Select seriesvariables_value from 
(
select *, row_number() over 
(order by SeriesVariables_ID asc) as rownum from ''[email protected]+'' 
.dbo.Seriesvariables where 
SeriesVariables_Label = ''Enter Tablet Segment Pull Date'' and 
Series_ID = 42) as tbl1 
where rownum = 1') 
+0

而不是' '' + @ DBNAME + ''''使用 '+ @ DBNAME +''而已。 – Rohan

+1

@ R.S並且op還需要聲明和分配'EXEC'外的變量 – Lamak

+0

Hi Marc。這是用於SQL Server 2008 R2的 – Abe

回答

1

它看起來像你試圖動態選擇你正在運行此查詢的數據庫。在創建查詢時,您可以執行exec,但在代表數據庫的查詢中不能包含變量。

這應該工作

declare @dbname nvarchar(100) 
set @dbname = 'HUM_FM_1_SYNTQ_TEST' 

exec(' 

select @dbname 

Select seriesvariables_value from 
(
select *, row_number() over 
(order by SeriesVariables_ID asc) as rownum from '[email protected]dbname+' 
.dbo.Seriesvariables where 
SeriesVariables_Label = ''Enter Tablet Segment Pull Date'' and 
Series_ID = 42) as tbl1 
where rownum = 1') 
+0

嗨,感謝您的回覆。無論如何,我可以在exec中聲明@dbName。 – Abe

+1

不是,並將其用作該查詢中的數據庫名稱。你爲什麼不想在exec聲明之外聲明它? –

+0

嗨我已經修改我的腳本,因爲你有建議,它工作正常。非常感謝。 – Abe