小编qua*_*rkX的帖子

如何在SELECT T-SQL命令中包含结果集中返回的行总数?

我想询问是否有一种方法可以使用Row_Number(SQL 2005)命令在TSQL查询的返回结果集中包含总行数(作为附加列).例如,以类似于以下的形式从Book表中获取查询结果集:

RowNum   BookId     BookTitle    TotalRows
--------------------------------------------
1        1056       Title1       5    
2        1467       Title2       5    
3        121        Title3       5    
4        1789       Title4       5    
5        789        Title5       5
Run Code Online (Sandbox Code Playgroud)

该查询是存储过程中实现的自定义分页功能的一部分.目标是仅返回当前页面索引的记录并限制为页面大小,还要返回select语句中的记录总数,以确定结果集页面的总数.

sql t-sql sql-server

19
推荐指数
3
解决办法
4万
查看次数

使用针对数据库表的多个可选参数实现搜索功能

我想检查是否有一个首选的设计模式,用于实现具有针对数据库表的多个可选参数的搜索功能,其中对数据库的访问应仅通过存储过程.

目标平台是.Net与SQL 2005,2008后端,但我认为这是非常普遍的问题.

例如,我们有客户表,我们希望为UI提供不同参数的搜索功能,例如客户类型,客户状态,客户邮编等,所有这些都是可选的,可以任意组合进行选择.换句话说,用户可以仅按customerType或按customerType,customerZIp或任何其他可能的组合进行搜索.有几种可用的设计方法,但它们都有一些缺点,我想问一下它们中是否有一个首选设计,或者是否有另一种方法.

  1. 根据来自UI的搜索请求,在业务层中动态生成sql where子句sql语句,并将其作为参数传递给存储过程.像@Where ='where CustomerZip = 111111'在存储过程内部生成动态sql语句并使用sp_executesql执行它.缺点:动态sql,sql注入

  2. 实现具有多个输入参数的存储过程,表示来自UI的搜索字段,并使用以下构造仅为where语句中的请求字段选择记录.

哪里

        (CustomerType = @CustomerType OR @CustomerType is null )

AND      (CustomerZip = @CustomerZip OR @CustomerZip is null )

AND   …………………………………………
Run Code Online (Sandbox Code Playgroud)

缺点:sql可能存在性能问题.

3.为每个搜索参数组合实现单独的存储过程.缺点:随着搜索参数的增加,重复的代码,存储过程的数量将迅速增加.

.net sql ado.net design-patterns

8
推荐指数
1
解决办法
3127
查看次数

两个不同的Windows SDK版本可以在同一台机器上共存而不会发生冲突吗?

我有一台带有Vsiual Studio 2005和Visual Studio 2008以及Windows SDK版本6.1(Windows Vista)的机器.我打算安装最新的SDK(Windows 7和.Net 3.5 Service Pack1),但MSDN Comptabilty文档(http://msdn.microsoft.com/en-us/windows/dd146047.aspx)表示最新的SDK不建议使用VS 2005.我想检查两个SDK是否可以在同一台机器上共存,或者最新的SDK是否会使旧版本出现问题,并可能导致VS 2005出现问题.

谢谢

windows sdk

6
推荐指数
1
解决办法
3088
查看次数

标签 统计

sql ×2

.net ×1

ado.net ×1

design-patterns ×1

sdk ×1

sql-server ×1

t-sql ×1

windows ×1