1

次の行を持つストアドプロシージャがあります。

SET @SQL = 'SELECT path,title,tags
            FROM (
                  SELECT ROW_NUMBER() OVER(ORDER BY file_number) AS Row, *
                  FROM  files) AS tbl 
            WHERE file_number IN (SELECT tag_file_number 
                                  FROM tags 
                                  WHERE tag LIKE ' + @Conditions + '), Row >= '
                   + CONVERT(varchar(9), @StartIdx) + ' AND
                   Row <= ' + CONVERT(varchar(9), @EndIdx)

'bus'をパラメータ値として渡すとエラーが発生します。私の目的は、SQLクエリの一部を渡し、それを。の代わりに使用することです@conditions

'%bu%またはtag Like%time%またはtag Like%bus time%'を渡すこともできます。これは難しいことではないと思いますが、単純に理解できません。これは非常に特殊な問題であるため、グーグルで検索することすらできません。私を助けてください。さらに情報が必要な場合はお知らせください。

4

1 に答える 1

1

引用符がありません。次のようにしてみてください。

SET @SQL = 'SELECT path,title,tags
        FROM (
        SELECT  ROW_NUMBER() OVER(ORDER BY file_number) AS Row, *
              FROM  files ) AS tbl WHERE file_number in(select tag_file_number from tags where tag like "' + @Conditions + '"), Row >= '
                            + CONVERT(varchar(9), @StartIdx) + ' AND
               Row <=  ' + CONVERT(varchar(9), @EndIdx)

今何が起こっているのかwhere tag like bus、そしてそれはそうであるに違いありませんwhere tag like "bus"

于 2012-06-25T08:43:32.990 に答える