表1
用户名 密码
10001  123
10002  345请教大家,可否用条件创建一个存储过程qq_pass如果exec qq_pass,也就是参数为空,则执行 SELECT * FROM 表1显示的结果
如果eec qq_pass 1001 则 显示1001的行,。

解决方案 »

  1.   

    declare @p varchar(30)  
    set  @p=nullselect * from 表1 where 用户名=isnull(@p,用户名)
      

  2.   

    if object_id('qq_pass') is not null drop proc qq_pass
    go
    create proc qq_pass(
    @username varchar(20)
    )
    as
    select * from 表1 where isnull(@username,'')='' or (用户名=@username)
    go
      

  3.   

    create proc qq_pass @用户名 varchar(20)=null
    as
    if @用户名 is null
    select * from tb
    else
    select * from tb where 用户名=@用户名
      

  4.   

    create proc qq_pass  @username varchar(20)=null
     as
     if @username  is null or @username =''
     select * from tb
     else
     select * from tb where username= @username
      

  5.   

    IF object_id('qq_pass') IS NOT NULL 
    DROP PROC qq_pass 
    GO
    CREATE PROC qq_pass @username VARCHAR(20)
    AS
      IF @username IS NULL 
          OR @username = ''
        SELECT *
        FROM   tb
       ELSE
        SELECT *
        FROM   tb
        WHERE  username = @username
      

  6.   

    这样 exec qq_pass null 才能执行
    如果 只是这样exec qq_pass 要如何?
      

  7.   

    这样 exec qq_pass null 才能执行
    如果 只是这样exec qq_pass 要如何?