我想创建一个包含两个ColumnName
和ColumnValue
参数的存储过程进行搜索
我的查询看起来像这样:
SELECT * FROM TableName WHERE @ColumnName Like @ColumnValue + '%'
但是返回0结果
答案 0 :(得分: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;