sql中if then的使用

create trigger deleteone
on filmreview for delete
as begin
declare @q int
set @q = old.filmreview_id
while(old.filmreview_id!=MAX(filmreview_id))
begin
if(filmreview_id > @q) then
filmreview_id = filmreview_id - 1
else
break
end
end

帮我看看这个触发器有问题吗 sqlserver2008报错
说then附近有语法错误

第1个回答  2011-06-08
if 后面没then
引用sql联机丛书
IF...ELSE
在执行 Transact-SQL 语句时强加条件。如果条件满足(布尔表达式返回 TRUE 时),则在 IF 关键字及其条件之后执行 Transact-SQL 语句。可选的 ELSE 关键字引入备用的 Transact-SQL 语句,当不满足 IF 条件时(布尔表达式返回 FALSE),就执行这个语句。

语法
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]

另外你这个触发器能执行?
set @q = old.filmreview_id
while(old.filmreview_id!=MAX(filmreview_id))
这两行我怎么看都不符合sql语法啊
第2个回答  2011-06-08
SQL中的if...else语法没有then的。
应该是
if(filmreview_id > @q)
begin
filmreview_id = filmreview_id - 1
end
else
begin
break
end
end
第3个回答  2011-06-08
take out End below break本回答被提问者采纳