if 条件 begin 语句(如果只有一条语句,可不用 bengin end ) end else 语句(如果只有一条语句,可不用 bengin end ) begin end
if 条件 begin 语句 end else begin 语句 end
if 条件中赋值不行吧,没试过 为什么非要在条件里赋值呢 满足条件再赋值不行么? 或者在if之前赋值.
我想做的,是这个思路,不知道能否实现:A表中有字段money,存放金钱数.字段a,存放年或月.字段b,存放数目字. B表中有字段c,存放平均数; 触发器中: 定义变量d; if a="年" begin d=money/b insert dbo.b().. end else begin d=money*12/b insert dbo.b().. end end
再麻烦一下大家,在此里面能否再嵌套FOR循环呢?
if 条件 begin 语句(如果只有一条语句,可不用 bengin end ) end else 语句(如果只有一条语句,可不用 bengin end ) begin end
CREATE TRIGGER [HtTojK] ON [dbo].[HTDJ2005] after INSERT AS DECLARE @bb float --定义变量 DECLARE @aa INT DECLARE @i INT if a="月" SET @aa=12/b --给变量赋值 SET @bb = YSJH*12/b ELSE SET @aa=b SET @bb = YSJH/b end begin for @i=1 TO @aa INSERT DBO.JKJH(c) Select @bb AS menoy From inserted where ID=(select max(id) from inserted) NEXT END
CREATE TRIGGER [HtTojK] ON [dbo].[HTDJ2005] for INSERT AS DECLARE @bb float --定义变量 DECLARE @aa INT DECLARE @i INT if a="月" ---------->这个哪里来的???? SET @aa=12/b --给变量赋值 SET @bb = YSJH*12/b ELSE SET @aa=b SET @bb = YSJH/b end set @i =1begin while @i<=@aa -- 用while 来实现循环吧~~ INSERT DBO.JKJH(c) Select @bb AS menoy From inserted where ID=(select max(id) from inserted)--Select @bb AS menoy From inserted 其中@bb不用变量,用列名就行了 set @i=@i+1 --NEXT --不行 END
begin
语句(如果只有一条语句,可不用 bengin end )
end
else
语句(如果只有一条语句,可不用 bengin end )
begin
end
begin
语句
end
else
begin
语句
end
满足条件再赋值不行么? 或者在if之前赋值.
B表中有字段c,存放平均数;
触发器中:
定义变量d;
if a="年"
begin
d=money/b
insert dbo.b()..
end
else
begin
d=money*12/b
insert dbo.b()..
end
end
begin
语句(如果只有一条语句,可不用 bengin end )
end
else
语句(如果只有一条语句,可不用 bengin end )
begin
end
1、关键字 'ELSE' 附近有语法错误。
2、关键字 'END' 附近有语法错误。
3、关键字 'From' 附近有语法错误。
4、'NEXT' 附近有语法错误。
所以...
after INSERT
AS
DECLARE @bb float --定义变量
DECLARE @aa INT
DECLARE @i INT
if a="月"
SET @aa=12/b --给变量赋值
SET @bb = YSJH*12/b
ELSE
SET @aa=b
SET @bb = YSJH/b
end begin
for @i=1 TO @aa
INSERT DBO.JKJH(c) Select @bb AS menoy From inserted where ID=(select max(id) from inserted)
NEXT
END
for INSERT
AS
DECLARE @bb float --定义变量
DECLARE @aa INT
DECLARE @i INT
if a="月" ---------->这个哪里来的????
SET @aa=12/b --给变量赋值
SET @bb = YSJH*12/b
ELSE
SET @aa=b
SET @bb = YSJH/b
end
set @i =1begin
while @i<=@aa -- 用while 来实现循环吧~~
INSERT DBO.JKJH(c) Select @bb AS menoy From inserted where ID=(select max(id) from inserted)--Select @bb AS menoy From inserted 其中@bb不用变量,用列名就行了
set @i=@i+1 --NEXT --不行
END
这个是从A表读取的,用来作判断的.
begin
语句
end
else
begin
语句
end