1

我想创建一个带有两个参数ColumnNameColumnValue用于搜索的存储过程

我的查询看起来像这样:

SELECT * FROM TableName WHERE @ColumnName Like  @ColumnValue  + '%'

但它返回 0 结果

4

1 回答 1

4

为此,您需要动态 SQL。您所写的是在 @ColumnName 值中搜索 @columnValue 值。因此,如果您的列是foo并且值是bar,它会搜索'foo'LIKE'bar%'

DECLARE @SQL AS NVARCHAR(MAX)

SET @SQL = 
N'SELECT * FROM TableName 
WHERE ' + QuoteName(@ColumnName) + ' LIKE @val+''%'''

EXECUTE sp_executesql 
@SQL,
N'@val varchar(100)',
@val = @ColumnValue;
于 2013-09-07T06:39:19.650 回答