IF...ELSE元素在SQL Server中,是用于控制代码程流(逻辑处理)。如果条件为TRUE,则执行指定的语句或语句块;如果条件为FALSE或UNKNOWN则执行指定的另外语句或语句块。ELSE部分是可选的。
演示:
代码
--判断存储过程是否存在
IF OBJECT_ID ('[dbo].[usp_Employee_Search]','u') IS NOT NULL
--如果存在,DROP掉
DROP PROCEDURE [dbo].[usp_Employee_Search]
--分隔批处理单元
GO
--创建新存储过程
CREATE PROCEDURE [dbo].[usp_Employee_Search]
(
@ConditionExpression nvarchar(3000)
)
AS
--宣告一个变量
DECLARE @sql nvarchar(4000)
--判断传入参考的长度。
IF LEN(@ConditionExpression) = 0
--如查参数长度为零,即没有参数传入,把默认SQL语句赋值给@sql变量
SET @sql ='SELECT * FROM [dbo].[udf_Employee]()'
ELSE
--如果参数长度不为零,把默认SQL语句与参数串连之后赋值给@sql变量
SELECT @sql = 'SELECT * FROM [dbo].[udf_Employee]() WHERE ' + @ConditionExpression
--使用EXECUTE执行这SQL语句
EXECUTE(@sql)
--判断存储过程是否存在
IF OBJECT_ID ('[dbo].[usp_Employee_Search]','u') IS NOT NULL
--如果存在,DROP掉
DROP PROCEDURE [dbo].[usp_Employee_Search]
--分隔批处理单元
GO
--创建新存储过程
CREATE PROCEDURE [dbo].[usp_Employee_Search]
(
@ConditionExpression nvarchar(3000)
)
AS
--宣告一个变量
DECLARE @sql nvarchar(4000)
--判断传入参考的长度。
IF LEN(@ConditionExpression) = 0
--如查参数长度为零,即没有参数传入,把默认SQL语句赋值给@sql变量
SET @sql ='SELECT * FROM [dbo].[udf_Employee]()'
ELSE
--如果参数长度不为零,把默认SQL语句与参数串连之后赋值给@sql变量
SELECT @sql = 'SELECT * FROM [dbo].[udf_Employee]() WHERE ' + @ConditionExpression
--使用EXECUTE执行这SQL语句
EXECUTE(@sql)