在存储过程中动态生成 查询语句 的问题

ssuunnbbiirrdd ssuunnbbiirrdd 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有这样一个很简单的匹配查询:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

ALTER PROCEDURE dbo.Jn_News_SearchEnding
(
@Title Nvarchar(32),
@Name Nvarchar(16),
@AdUserId Int,
@AuditingId Int,
@Result Int OutPut
)
AS
SELECT * FROM News_View WHERE Title=@Title AND Name=@Name AND AdUserId=@AdUserId AND AuditingId=@AuditingId ORDER BY Id DESC

RETURN

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

现在的问题是: 如果传入的 参数(比如说@title)是 空值,那么,查询语句就去掉 title=@title这个条件,查询语句就变成了这样:

SELECT * FROM News_View WHERE AND Name=@Name AND AdUserId=@AdUserId AND AuditingId=@AuditingId ORDER BY Id DESC
这个存储过程怎么写??
...全文

相关推荐

模糊查询的通用存储过程

模糊查询的通用存储过程实现语句。

weixin_38743506

自己收集比较强大的分页存储过程 推荐

(下面的代码原来我想用折叠的代码的,但是在google里面老是添加不了折叠的代码,所以就整屏的贴出来了,望大家不要见外。) 朋友的比较好的存储过程。优点是:性能非常的高,每次查询都是根据ID查询,每次都是对一半的数据进行分页。缺点是:当有多个排序条件时,分页数据显示会出现问题。(该问题在第二个网友的分页存储过程中有解决的方法)。 代码如下: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[proc_page] ( @tblName nvarchar(200), —-要显示的表或多个表的连接lihu @f

weixin_38733875

mysql 动态执行存储过程语句

MSSQL中动态执行sql语句可以使用EXEC()函数。MSSQL中也有类似的函数EXECUTE(),不过不同的是MYSQL中动态执行存储过程语句与MSSQL还是有区别的。

weixin_38663029

高效的通用分页存储过程

-- Author: Curllion Zhang -- Create date: 2010-1-11 -- Description: 分页查询 -- ============================================= CREATE PROCEDURE [dbo].[paging] @tblName nvarchar(4000), ----要显示的表或多个表的连接 @fldName nvarchar(4000) = '*', ----要显示的字段列表 @pageSize int, ----每页显示的记录个数 @page int, ----要显示那一页的记录 @pageCount int = 1 output, ----查询结果分页后的总页数 @Counts int = 1 output, ----查询到的记录数 @strCondition nvarchar(2000) = '', ----查询条件,不需where @strSort nvarchar(2000) --排序字段 AS BEGIN Declare @strTmp nvarchar(4000) ----存放取得查询结果总数的查询语句 --获取总条数 if @strCondition = '' set @strTmp = ' select @Counts = count(*) from ' + @tblName else set @strTmp = ' select @Counts = count(*) from ' + @tblName + ' where ' + @strCondition exec sp_executesql @strTmp,N'@Counts int out ',@Counts out --计算@pageCount的值 if @Counts @pagecount set @page = @pagecount if @page ' + cast((@page -1) * @pageSize as varchar(128)) + ' and a.RowNum ' + cast((@page -1) * @pageSize as varchar(128)) + ' and a.RowNum <= ' + cast(@page * @pageSize as varchar(128)) end exec sp_executesql @strTmp END

lxl_mengquan

SQL_Server存储过程调试指南

SQL_Server 存储过程调试 指南

大邦
评论 4
收藏 已收藏
分享
返回顶部
ssuunnbbiirrdd
应用实例 27,579 成员 68,540 内容