我现在想写一个存储过程,假设这个存储过程有以下变量
@loginname nvarchar(50),
@articleno nvarchar(50),
@pagecount int,
@figcount int,
@tablecount int
我查询的时候有可能只需要以上的一个变量,如@loginname,其他的用不着了
但是我再往里面添值得时候还要填五个数据值,不填就会报错
我想请问各为高手这种情况该如何解决

解决方案 »

  1.   

    好象只能这么办.然后在存储过程中去判断传入的参数是否有效,再对应的写SQL语句.
      

  2.   

    CREATE PROC M 
       @loginname nvarchar(50) = '', 
       @articleno nvarchar(50) ='', 
       @pagecount int = 0, 
       @figcount int, 
       @tablecount int = 0
    AS
     BEGIN
      SELECT TOP 1 * FROM sysobjects
     END
    GO
    EXEC dbo.M NULL,NULL,NULL,20,NULLDROP PROC M 这个是没有办法的,你必须把参数输够!要不就使用一个整体参数,合并成字符串,然后在存储过程中处理!
      

  3.   

    实现模糊查询使用null值就可以@loginname nvarchar(50) =null, 
    @articleno nvarchar(50)=null, 
    @pagecount int =null, 
    @figcount int =null, 
    @tablecount int =null 
    --在条件中加上null的条件
    where loginname=@loginname or loginname=null
    and   articleno=@articleno or articleno=null--这样就可以了