declare @sql varchar(8000)
set @sql='select * from tab where'if @UidName not is null
  @sql=@sql+ 'UidName= '+@UidName 
......
exec(@sql)

解决方案 »

  1.   

    @Uid int,
    @UseStatus int,
    @Forward int,
    @BindNum varchar(32),
    @UidName varchar(32)as
    declare @ServiceNum int
    declare @Sql varchar(2000)
    select @ServiceNum=servicenum from UniformIdentifier where uid=@Uid
    set @Sql='
    select Uni.uid,Uni.password,Uni.usestatus,Uni.forward,Uni.bindnum,EntSub.uidname
    from   UniformIdentifier Uni FULL OUTER JOIN EntSubAccount EntSub ON Uni.Uid = EntSub.Uid
    where Uni.ServiceNum='+ @ServiceNum

    if @UseStatus<>''
    set @Sql = @Sql + 'and UseStatus='+ @UseStatus
    if @Forward<>''
    set @Sql = @Sql + 'and Forward='+ @Forward
    if @BindNum<>''
    set @Sql = @Sql + 'and BindNum='+ @BindNum
    if @UidName<>''
    set @Sql = @Sql + 'and UidName='+ @UidName
    exec(@Sql)这样写 哪里错了????????????
      

  2.   

    这个很简单沙1!@UseStatus int,
    @Forward int,
    @BindNum varchar(32)
    @UidName varchar(32)asselect * from 表
    where (@UseStatus = null or @UseStatus条件)
      And (@BindNum = null or @BindNum 条件)
      And (@UidName = null or @UidName 条件)
      And (@Forward = null or @Forward条件)