CREATE PROCEDURE AdSearchContent
@KeyWord varchar(50) ='%', --==关键字
@Author varchar (50) ='%', --==作者
@CateID varchar (50) ='%', --==范围
@InputDate varchar(50) --==时间
AS
SELECT nID,Title,Content,Author,InputDate
FROM sfNews
WHERE (KeyWord LIKE @KeyWord)
AND(Author LIKE @Author)
AND(CateID LIKE @CateID)
AND(InputDate > @InputDate)
return
GO
原来的存储过程是如上现在想把他改为当@input为空的时候就不对比(InputDate > @InputDate)
了这里的InputDate字段为SMALLDATETIME,参数@Author,@CateID ,@KeyWord 也用一样的方法大家帮我一下,可以只写一点看看我能不能举一反三
SELECT nID,Title,Content,Author,InputDate
FROM sfNews
WHERE (KeyWord LIKE @KeyWord)
AND(Author LIKE @Author)
AND(CateID LIKE @CateID)
else
SELECT nID,Title,Content,Author,InputDate
FROM sfNews
WHERE (KeyWord LIKE @KeyWord)
AND(Author LIKE @Author)
AND(CateID LIKE @CateID)
AND(InputDate > @InputDate)
@KeyWord varchar(50) ='%', --==关键字
@Author varchar (50) ='%', --==作者
@CateID varchar (50) ='%', --==范围
@InputDate varchar(50) --==时间
AS
SELECT nID,Title,Content,Author,InputDate
FROM sfNews
WHERE (KeyWord LIKE isnull(@KeyWord,'%'))
AND(Author LIKE isnull(@Author,'%'))
AND(CateID LIKE isnull(@CateID,'%'))
AND(InputDate > isnull(@InputDate,0))
isnull(string ,expreess)
但string 为空时,用express替代.return
GO
-
GO
SET ANSI_NULLS ON
GOALTER PROCEDURE AdSearchContent
@KeyWord varchar(50), --==关键字
@Author varchar (50), --==作者
@CateID varchar (50) , --==范围
@InputDate varchar(50) --==时间
AS
SELECT nID,Title,Content,Author,InputDate
FROM sfNews
WHERE (KeyWord LIKE isnull(@KeyWord,'%'))
AND(Author LIKE isnull(@Author,'%'))
AND(CateID LIKE isnull(@CateID,'%'))
AND(InputDate > isnull(@InputDate,0))returnGO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GOEXECUTE AdSearchContent错误:====================服务器: 消息 201,级别 16,状态 4,过程 AdSearchContent,行 0
过程 'AdSearchContent' 需要参数 '@KeyWord',但未提供该参数。