2014-12-22 42 views
-4

我需要執行一個SQL像一個SP內的波紋管。執行動態SQL查詢

DECLARE 
@varSearchQ VARCHAR(100), 
@varFieldName VARCHAR(100), 
@varTableName VARCHAR(100), 
@Sql VARCHAR(Max) 

SET @varSearchQ='000' 
SET @varFieldName='varConsoleID' 
SET @varTableName='FF.ConsoleDT' 

SET @Sql = N'SELECT ' + @varFieldName + ' 
      FROM ' + @varTableName + ' 
      WHERE ' + @varFieldName + ' LIKE %' + @varSearchQ + '%' 

我找到了一個像EXEC sp_executesql @Sql這樣的方法。但我得到錯誤。

+0

你會得到什麼樣的錯誤?另外:用幾句話來描述你的任務,這樣我們就可以理解你的方法會出現什麼問題。 – rekaszeru

回答

2

試試這個

你應該使用Print進行調試Statments

Create proc MYPROC 
as 
BEGIN 


DECLARE 
    @varSearchQ VARCHAR(100), 
    @varFieldName VARCHAR(100), 
    @varTableName VARCHAR(100), 
    @Sql VARCHAR(Max) 

SET @varSearchQ='000' 
SET @varFieldName='varConsoleID' 
SET @varTableName='FF.ConsoleDT' 

SET @Sql = N'SELECT ' + @varFieldName + ' 
      FROM ' + @varTableName + ' 
      WHERE ' + @varFieldName + ' LIKE ''%' + @varSearchQ + '%''' 
      print (@Sql) 
      EXEC (@Sql) 


END 
+0

謝謝!但我需要'sql'在'SP'內部執行並將結果導入到Asp.Net項目中。 –

+0

@SeevaliRathnayake您需要將參數作爲輸入段傳遞給存儲過程 –

+0

這裏的一點是Ganesh已經逃脫了'LIKE''%'(注意引用),我相信在OP的問題中缺少這些。 – StuartLC