台灣最大程式設計社群網站
線上人數
1083
 
會員總數:246134
討論主題:189713
歡迎您免費加入會員
討論區列表 >> MS SQL >> 關於SQL動態變數的問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於SQL動態變數的問題
價值 : 20 QP  點閱數:1038 回應數:2
樓主

Xien
門外漢
0 11
161 4
發送站內信

請問各位前輩們,下面的問題我一直無法解決


DECLARE @cmd varchar(50),
@schema varchar(10),
@table varchar(20),
@mdc varchar(20),
@mdc2 varchar(20),
@mdc3 varchar(20)
SET @cmd = 'SELECT * FROM ';
SET @schema = 'dbo';
SET @table = 'too201602';
SET @mdc = 'Where ';
SET @mdc2 = '項目與日期';
SET @mdc3 = '船票';
SET @cmd = @cmd + @schema + '.' + @table +'where 項目與日期 ='+ @mdc3 +';';
EXEC (@cmd);

在執行時,一直出現錯誤的訊息:

訊息 102,層級 15,狀態 1,行 1
接近 '=' 之處的語法不正確。


請問各位前輩有什麼建議嗎?這個狀況下不能使用=嗎?

搜尋相關Tags的文章: [ SQL ] , [ SQL SERVER ] , [ ASP.donet ] ,
本篇文章發表於2016-02-25 20:57
1樓
最有價值解答

pilipala
檢舉此回應

把 @cmd 列出來看看


另外 sp_executesql 會是一個更好的選擇
https://msdn.microsoft.com/zh-tw/library/ms188001%28v=sql.120%29.aspx?f=255&MSPPError=-2147217396
本篇文章回覆於2016-02-25 21:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Xien
檢舉此回應
感謝,原來是where前面缺了空白.
本篇文章回覆於2016-02-25 22:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.