我必须将不同的参数作为代码后面的列传递,因此我为15列编写了15个gridview绑定方法,所以为了避免这种情况,我想在查询中设置。例如,如果我的列1然后选择此where子句,如果第2列然后选择这个where子句。那么如何写这样的?
答案 0 :(得分:0)
以下是如何创建和运行动态查询的示例
CREATE PROCEDURE sp_search
@param1 int = NULL,
@param2 int = NULL
AS
BEGIN
DECLARE @query_string nvarchar(4000);
SET @query_string = 'SELECT * FROM TABLE_NAME WHERE 1 = 1 ';
IF(@param1 IS NOT NULL)
BEGIN
SET @query_string = @query_string + ' AND columnName1 = ' + CAST(@param1 AS VARCHAR);
END
IF(@param2 IS NOT NULL)
BEGIN
SET @query_string = @query_string + ' AND columnName2 = ' + CAST(@param2 AS VARCHAR);
END
EXEC sys.sp_executesql @query_string;
END