Sql Server 编写多条件查询语句的存储过程-包含语法异常的存储过程与正确存储过程

Sql Server 编写多条件查询语句的存储过程--包含语法错误的存储过程与正确存储过程

    最近做的《教务-基础系统》中有这样的需求,根据传入的条件查询相应的数据信息。比如根据校区查询某一校区的建筑信息;如果不传入校区信息,则查询各个校区全部建筑信息。于是写了多条件查询的存储过程。当然这个存储过程可能还有优化之处,等待高人指点!


   一、包含语法错误的多条件查询存储过程

      1.存储过程建立

         Sql Server 编写多条件查询语句的存储过程-包含语法异常的存储过程与正确存储过程

      2.错误展示

Sql Server 编写多条件查询语句的存储过程-包含语法异常的存储过程与正确存储过程

      

      以此警示自己!


   二、正确的存储过程

      1.存储过程的创建

-- =============================================
-- Author:		XXX
-- Create date: 2012年12月29日 20:50:38
-- Description:建筑管理:查询现存建筑信息
-- =============================================
CREATE PROCEDURE [dbo].[PROC_TB_BuildingQueryBuilding] 
	-- 存储过程参数
	@CampusID CHAR(36)	--校区ID
AS
BEGIN
	
	Declare @sqlStr varchar(300)  --存储sql语句
	
	Set @sqlStr = 'Select * from VB_BuildingAllInfo where 1=1'	        --合成sql语句,不输入条件则查询全部建筑信息;
	                                                                    --根据条件从视图VB_BuildingAllInfo中查询
	 
	if (@CampusID!='')										            --判断是否选择校区
		set @sqlStr = @sqlStr + ' and CampusID =' + ''''+@CampusID+'''' --选择校区,加上判断条件
		 

	EXEC (@sqlStr + ' and IsAvailable =''是''')							--执行SQL语句,查询建筑信息
END

      2.建筑信息查询结果展示

Sql Server 编写多条件查询语句的存储过程-包含语法异常的存储过程与正确存储过程




    注意到含有语法错误的存储过程与正确存储区别在哪了嘛?其实就是

     Sql Server 编写多条件查询语句的存储过程-包含语法异常的存储过程与正确存储过程