推荐.NET教程: ASP.NET C# 开发环境 Ajax教程 控件开发 统计报表 数据库 Web服务 安装部署 CommunityServer NHibernate DataGrid/GridView 实用代码 VS2005
示例源码 MVC/三层 SqlHelper 入门源码 开源 CMS Ajax/Atlas C#.net 毕业设计 源码 经典代码 商业 本站作品 持久层 随书源码 WebService 英文/汉化 Asp.net2.0

阿牛·乐园

每天进步一点点

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  71 随笔 :: 14 文章 :: 378 评论 :: 13 引用

/*
作者:阿牛(牛昆亮) QQ:273352165 MSN:niukl@hotmail.com

声明:可以免费使用,请您保留此信息
    如果您有什么改过,记得告诉我!
*/
在我们使用存储过程的时候,有时为了组合查询条件,不得不使用动态查询。比如下面的代码:

create proc usp_search
@city int
as
begin
    
declare @sql varchar(8000)
    
set @sql = N'select * from TestTable where 1=1 '
    
if(@city <> -1)
        
set @sql = @sql + ' and cityId = @city '
    
exec sp_execute_sql @sql, N'@city int'@city
end
go

      如果我们不用动态SQL,则可以改成下面的存储过程:

create proc usp_search
@city int
as
begin
    select * from TestTable where 1=1 and (@city = -1 or cityId = @city)
end
go
     
posted on 2006-04-29 17:24 阿牛 阅读(568) 评论(0)  编辑 收藏 所属分类: ASP.netTSQL

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-05-06 18:44 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: