日期:2014-05-16  浏览次数:20548 次

关于SQL SERVER 存储过程取不到值的问题
小弟现在有这么一个需求,提供一个查询功能,查询字段不定,按照用户填写的内容查询指定字段,我以前根据控件是否为空拼接SQL语句,现在用存储过程实现,参考论坛里的一篇帖子修改,代码如下,但是取不到任何记录,这个存储过程哪里有问题吗?(非计算机专业,毕业设计要用到,半路出家,基础不熟,求指教)
CREATE PROCEDURE getDepList
(
    @部门ID           CHAR(4),
    @部门简介         TEXT,
    @部门名           NVARCHAR(20),
    @负责人           NVARCHAR(10),
    @部门等级         CHAR(2),
    @部门人数上限     INT,
    @部门人数下限     INT,
    @部门电话         CHAR(11),
    @日期下限         DATETIME,
    @日期上限         DATETIME,
    @启用             CHAR(2),
    @上级部门         NVARCHAR(20)
)
AS
SELECT 部门ID,
       部门名,
       负责人,
       部门等级,
       部门人数,
       部门电话,
       成立日期,
       启用,
       上级部门,
       部门简介
FROM   部门信息
WHERE  部门ID LIKE '%' + cast(ISNULL(@部门ID, '')as varchar) + '%'
       AND 部门名 LIKE '%' + ISNULL(@部门名, '') + '%'
       AND 负责人 LIKE '%' + ISNULL(@负责人, '') + '%'
       AND 部门等级 LIKE '%' + ISNULL(@部门等级, '') + '%'
       AND 部门人数 BETWEEN (ISNULL(@部门人数下限, 0)) AND (ISNULL(@部门人数上限, POWER(2, 30)))
       AND 部门电话 LIKE '%' + ISNULL(@部门电话, '') + '%'
       AND 成立日期 BETWEEN (
               ISNULL(@日期下限, CAST('1900-01-01 01:00:00.000' AS DATETIME))
           )
           AND (ISNULL(@日期上限, GETDATE()))
       AND 启用 LIKE '%' + ISNULL(@启用, '') + '%'
       AND 上级部门 LIKE '%' + ISNULL(@上级部门, '') + '%'
       AND 部门简介 LIKE '%' + ISNULL(CAST(@部门简介 AS VARCHAR), NULL) +
           '%'
GO

------解决方案--------------------

CREATE PROCEDURE GetSomething
(@课程名 varchar(10))
as
select * from Course where Cname