ALTER    PROCEDURE [Proc_Select_学期表]
@学期编号 [nvarchar](50) =  nullAS 
begin tran
select * from 学期表 
where 学期编号 = isnull(@学期编号,学期编号)if @@error >0
begin
rollback tran
return 0
end
else
begin
commit tran
return 1
end
GO

解决方案 »

  1.   

    或者:ALTER    PROCEDURE [Proc_Select_学期表]
    @学期编号 [nvarchar](50) =  nullAS 
    begin tran
    select * from 学期表 
    where 学期编号 = @学期编号 or @学期编号 is  null
    if @@error >0
    begin
    rollback tran
    return 0
    end
    else
    begin
    commit tran
    return 1
    end
    GO
      

  2.   

    你是要模糊查询?ALTER    PROCEDURE [Proc_Select_学期表]
    @学期编号 [nvarchar](50) =  nullAS 
    begin tran
    select * from 学期表 
    where 学期编号 like '%'+isnull(@学期编号,学期编号)+'%'if @@error >0
    begin
    rollback tran
    return 0
    end
    else
    begin
    commit tran
    return 1
    end
    GO
      

  3.   

    不用模糊查询,
    我刚刚试了一下,
    当时编号列有4个值: 01  02  03  4PROC dbo.Proc_Select_学期表 4 可以查询出来PROC dbo.Proc_Select_学期表 01 得到的是空记录集
      

  4.   

    写错了,是 EXEC dbo.Proc_Select_学期表 4
      

  5.   

    当数据库字段的的值为0开头\[nvarchar]类型的时候,
    为什么使用上述存储过程查不出来,
    要怎么操作呢?
    "01"