2014-12-22 145 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