2012-07-17 76 views
0

我試圖執行一個查詢不正確的語法,由於SQL查詢執行

DECLARE @ponumber varchar(50) 
DECLARE @gcas varchar(50) 
SET @ponumber = '3864_ab03963' 
SET @gcas = '81332119.' 
EXEC(N'SELECT * FROM tCleanOrderTracking_prod 
     WHERE [PO number] = ' + @ponumber + ' AND [GCAS] = ' + @gcas) 

而且我得到一個錯誤信息

Msg 102, Level 15, State 1, Line 1 
Incorrect syntax near '_ab03963'. 

我做錯了什麼?

+1

你在做什麼是[非常危險](http://xkcd.com/327/)。您應該使用[帶參數的預準備語句](http://dev.mysql.com/doc/refman/5.1/en/prepare.html)。 – dasblinkenlight 2012-07-17 10:49:06

回答

1

試試這個你錯過了'附近@gcas。

DECLARE @ponumber varchar(50) 
DECLARE @gcas varchar(50) 
SET @ponumber = '3864_ab03963' 
SET @gcas = '81332119.' 
EXEC(N'SELECT * FROM tCleanOrderTracking_prod 
     WHERE [PO number] = ' + @ponumber + ' AND [GCAS] = ' + @gcas + ') 
2

您必須在@gcas參數後關閉單引號。

1

你應該用引號括所有字符串參數,例如:

quote(@gcas),而不是簡單的@gcas