日期:2014-05-18 浏览次数:20657 次
CREATE PROCEDURE pro1
as
if (1=2)
begin
select 0
end
else if (1=1)
begin
//在这里有个复合的if else,在满足(1=1)的条件下:
/*
if(条件一)
select 10
else if(条件二)
select 100
else
select 1000
*/
end
else
begin
select 2
end
GO
1、请问有这些begin、end和没有这些begin、end,运行有什么区别吗?
一个模块有多句SQL语句需要begin end ,如果一个只有一句,不需要.
2、请补充复合中的代码,因为我这样写有错误:
/*
begin
if(条件一)
select 10
else if(条件二)
select 100
else
select 1000
end
*/
------解决方案--------------------
if else 后面只能跟一句SQL,多了就要用begin ... end 。如果if 后面有两句SQL,第2句就不受if else 控制了,一定会被执行的。
------解决方案--------------------
--不太明白你代码的具体意思.
CREATE PROCEDURE pro1
as
begin --你少了这里
if (1=2) --这里这么写永远也不会执行下面的代码
begin --可以不要
select 0
end --可以不要
else if (1=1) --这里这么写,永远都满足。
begin
//在这里有个复合的if else,在满足(1=1)的条件下:
/*
if(条件一)
select 10
else if(条件二)
select 100
else
select 1000
*/
end
else
begin --可以不要
select 2
end --可以不要
end --你少了这里
GO