首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 请教一个带参数的储存过程的语法? [无满意答案结贴,结贴人:wolflove23]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-24 16:32:54 楼主
    CREATE PROCEDURE pro_sample
    @A varchar(8000),
    @B int,
    @C datetime
    AS
    declare @where varchar(8000)
    declare @sql varchar(8000)
    set @sql='select * from table where 1=1'
    这里不知道该如何写了,大体意思是如果@A不空,where 1=1 and a like '@A'
    如果@B不空,where 1=1 and b=@B

    就是根据不同的条件连接查询条件
    最后再
    @sql =@sql+@where+' order by a,b,c'
    exec(@sql)
    GO
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-24 16:43:321楼 得分:0
    SQL code
    CREATE PROCEDURE pro_sample @A varchar(8000), @B int, @C datetime AS begin select * from table where 1=1 and (@A is null or a like @A+'%') and (@B is null or b = @B) and (@C is null or c = @C) order by a,b,c end GO

    or
    SQL code
    CREATE PROCEDURE pro_sample @A varchar(8000), @B int, @C datetime AS begin declare @where varchar(8000) declare @sql varchar(8000) set @sql='select * from table where 1=1' set @where = '' set @where = @where + isnull(' and a like '''+@A+'%''','') set @where = @where + isnull(' and b = '+cast(@B as varchar),'') set @where = @where + isnull(' and c = '''+convert(varchar,@C,120)+'''','') set @sql = @sql + @where + ' order by a,b,c' exec(@sql) end GO

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-24 16:46:482楼 得分:0
    SQL code
    CREATE PROCEDURE pro_sample @A varchar(8000), @B int, @C datetime AS begin declare @where varchar(8000) declare @sql varchar(8000) set @sql='select * from table where 1=1 ' set @where = '' set @where = @where + isnull(' and a like '''+@A+'%''','')+ isnull(' and b = '+cast(@B as varchar),'')+ isnull(' and c = '''+convert(varchar,@C,120)+'''','')+ ' order by a,b,c' set @sql = @sql + @where exec(@sql) end
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-24 16:48:083楼 得分:0
    还想问一句select 和set 的相同点和不同点。还是上面的例子吧?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-01-24 17:08:504楼 得分:0
    set 命令非标准SQL命令,其含义为为某个变量赋值;
    select 可以同时为多个变量赋值。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved