SQL Server 2008 R2存储过程
我在SQL Server 2008 R2中遇到了改进缓慢的问题,下面是一个例子: 我想创建一个接受参数的存储过程,但我想让它以一种特殊的方式工作,这样,如果我在一个表格病人的搜索中传递了两个参数,例如,如果我传递给它一个参数,我希望它在表格学校中搜索,等等 任何帮助都将不胜感激 多谢各位SQL Server 2008 R2存储过程,sql,stored-procedures,sql-server-2008-r2,Sql,Stored Procedures,Sql Server 2008 R2,我在SQL Server 2008 R2中遇到了改进缓慢的问题,下面是一个例子: 我想创建一个接受参数的存储过程,但我想让它以一种特殊的方式工作,这样,如果我在一个表格病人的搜索中传递了两个参数,例如,如果我传递给它一个参数,我希望它在表格学校中搜索,等等 任何帮助都将不胜感激 多谢各位 USE [] GO /****** Object: StoredProcedure [dbo].[proc_search_patient_ByID] Script Date: 11/28/2014
USE []
GO
/****** Object: StoredProcedure [dbo].[proc_search_patient_ByID] Script Date: 11/28/2014 07:47:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[proc_search_patient_ByID]
(
@PatID_pk int ,
@Cntid smallint,
@FamID int
)
AS
SET NOCOUNT ON
select cntid AS Center , PatFName AS FirstName , PatMName AS MiddleName , PatLName AS LastName , PatMother AS MotherName ,PatDOB AS DOB
from tbl
where Cntid=@Cntid and PatId_PK = @PatID_pk
如果我提供2个参数,我希望我的过程以这种方式工作,但如果我提供@FamID,我希望它在另一个表中完全搜索尝试为未使用的参数传递null值,并在存储过程中检查null以切换表
CREATE PROCEDURE [dbo].[proc_search_patient_ByID]
(
@PatID_pk int ,
@Cntid smallint,
@FamID int
)
AS
SET NOCOUNT ON
IF @Cntid IS NULL
BEGIN
--Use select stmt of a table
END
ELSE
--Use select stmt of another table
BEGIN
END
同样,使用适当的参数切换表