2012-07-09 93 views
0

我想用動態查詢實現嵌套查詢。SQL Server中的動態查詢中的嵌套查詢

我已經試過這樣的事情:

SET @str = 'Select @GRP= ' + @Field +' 
      from Hist_Tab 
      Where TerminalID in (Select id from newtab where lease='[email protected] +')'; 

exec sp_executesql @[email protected], 

@params= N' @GRP Numeric(15,2) Ouptut', 
@[email protected] Output 

但似乎我無法實現嵌套查詢這樣...

任何建議?

在此先感謝

+2

'Ouptut'應該是'Output'。 – 2012-07-09 11:49:37

+1

爲什麼看起來*我無法以這種方式實現嵌套查詢* - 你會得到一個錯誤嗎?如果是這樣的話:**這是什麼錯誤?!**請發佈完整的,完整的錯誤信息,以便我們能夠真正理解發生了什麼...... – 2012-07-09 13:19:56

+0

你能告訴我們什麼'@ str'包含後分配的 – 2012-07-09 14:19:25

回答

1

爲你傳遞的任何局部變量需要確保你在每一側增加額外的',這樣的動態語句與此同時,相當於執行結束: 其中租賃= 已將其編寫方式「@Lease的價值」被正在轉向到這一點: 在由於VARCHAR值進行比較,以租賃@Lease

租賃=值將拋出一個錯誤,缺少單引號。

試試這個:

SET @str = 'Select @GRP= ' + @Field +' 
      from Hist_Tab 
      Where TerminalID in (Select id from newtab where lease='''[email protected] +''')'; 

exec sp_executesql @[email protected], 

@params= N' @GRP Numeric(15,2) Ouptut', 
@[email protected] Output